2013-04-29 5 views
0

Я пытаюсь отправить значение текстового поля (номер счета) в файл PHP через jQuery и AJAX. Из файла PHP я возвращаю JSON-кодированные данные. Я хочу отобразить значения, полученные из базы данных, в следующих текстовых блоках (Общая сумма, сумма баланса) и в полях выбора (Режим оплаты, Состояние платежа).Загрузить данные JSON через jQuery и PHP

Я не получаю выход, который я желаю. Где я иду не так?

HTML:

<form name="inv_payment" method="post" action="" style="margin:0px;width:400px;"> 
    <fieldset> 
     <legend>Payment details</legend> 
     <label for=inv_num>Invoice Number</label> 
      <input id=inv_num name=inv_num type=number placeholder="12345" required autofocus > 
      <input type=button name="get_details" id="get_details" value="Get Details" > 
      <label for=tot_amt>Total Amount</label> 
      <input id=tot_amt name=tot_amt type=text placeholder="12345" disabled > <br/> 
      <label for=pay_up>Pay Up </label> 
      <input id=pay_up name=pay_up type=text placeholder="12345" required ><br/> 
      <label for=bal_amt>Balance Amount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label> 
      <input id=bal_amt name=bal_amt type=text placeholder="12345" disabled > <br/> 
       <label id="paymt_mode"><strong>Payment Mode</strong></label> 
          <select name="pay_mode" style="width: 130px"> 
          <option selected="selected">Cash</option> 
          <option>Cheque</option> 
          </select><br/> 
       <label id="paymt_status"><strong>Payment Status</strong> </label> 
          <select name="pay_status" style="width: 130px"> 
          <option selected="selected">Pending</option> 
          <option>Completed</option> 
          </select><br/> 
      <input type="submit" value="Payment" name="pay_btn"> 
     </fieldset> 
</form> 

JQuery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
    <script type="text/javascript"> 

    $(document).ready(function() { 


     $('#get_details').click(function() { 

     //To pass the invoice number and fetch related details 
     $.getJSON("get_invpay_details.php", {id: $('#inv_num').val()}, function(data){ 
      $('#tot_amt').val(data['Total_Amount']); 
      $('#bal_amt').val(data['Balance_Amount']); 
      $('#pay_mode').val(data['Payment_Type']); 
         $('#pay_status').val(data['Payment_Status']); 
     }); 
       }); 
</script> 

PHP:

<?php 
     include('includes/dbfunctions.php'); 
     include('includes/db.php'); 
     if(isset($_GET['id'])) 
    { 
       $tmp = $_GET['id']; 
     $sql = mysql_query("select Total_Amount,Balance_Amount,Payment_Type,Payment_Status from invoice where InvoiceNum='$tmp'"); 
     if(mysql_num_rows($sql)) 
     { 
      $data = mysql_fetch_array($sql); 
      echo json_encode($data); 
     } 
    } 

?> 
+0

Если это не результат, который вы хотели, что именно вы получаете? Также подумайте о переходе на mysqli или PDO, и ваш запрос выглядит странно! – adeneo

+0

покажите нам свой ответ json ... проверьте свою консоль .. – bipen

+0

вы можете показать свой 'json_encode ($ data)' content .. – Ranjith

ответ

0

Ваш ответ JSON значение заполнения с object.data вот так.

$('#tot_amt').val(data.Total_Amount); 
$('#bal_amt').val(data.Balance_Amount); 
$('#pay_mode').val(data.Payment_Type); 
$('#pay_status').val(data.Payment_Status); 

Здесь data является object не array.

+0

Спасибо ranjith за ответ. Я пробовал ваш код, но все еще не работал. – Rams

0

Я проверил свой запрос. Он дал мне правильный результат в редакторе mysql.

, что я мог видеть это .. у вас есть опечатка в вашем вопросе ...

недостающую }); для document.ready..which может быть нарушение сценария .. (это должно быть ошибка в вашем консоль, хотя ..) .. в любом случае что-то проверить ..

$(document).ready(function() { 


    $('#get_details').click(function() { 

    //To pass the invoice number and fetch related details 
     $.getJSON("get_invpay_details.php", {id: $('#inv_num').val()}, function(data){ 
      $('#tot_amt').val(data['Total_Amount']); 
      $('#bal_amt').val(data['Balance_Amount']); 
      $('#pay_mode').val(data['Payment_Type']); 
      $('#pay_status').val(data['Payment_Status']); 
     }); 
    }); 
    }); 
    //^^--here 
+0

Спасибо, bipen. Я забыл закрыть $ (document) .ready (function() {with}) ;. Теперь значение отображается в моем текстовом поле (Total Amount), но мои поля выбора (Режим оплаты amd Статус платежа не отражается.) – Rams

+0

которые должны работать ... убедитесь, что у вас есть опция data ['Payment_Type'] 'в вашем поле выбора – bipen