簡體   English   中英

從PHP和MySQL使用Ajax獲取數據

[英]Get data with ajax from php and mysql

我有這段代碼,當我輸入發票代碼時,它將從MySQL獲取數據並用Ajax填充其他文本。 但是我的ajax無法從我的控制者那里得到回報,有人幫助我嗎? 我哪里錯了?

我的PHP控制器可以獲取數據。

<?php 
  public function getDetail_transaction($invoice_id){
    $result = $this->db->get_where('tblTransaction',  array('payment_trx_id' => $invoice_id))->first_row();
    $data = json_encode($result);
    return $data;
  }
?>

我的觀點:

<div class="container">
    <div class="row">
        <div class="panel panel-default">
            <div class="panel-body">
                <h3>Confirm Your Payment</h3>
                <div class="col-md-4">
                <form name='ConfirmPayment' action="<?php echo base_url('Payment/ConfirmPayment');?>" method="POST" enctype="multipart/form-data">
                    <div class="form-group">
                        <label>Invoice ID</label>   
                        <div>
                            <input type="text" class="form-control" name='invoice_id' id='invoice_id' placeholder="Invoice ID" style='width:80%;'/>
                            <a type="submit" id='cek_invoice' class="btn cek_invoice">Cek</a>
                        </div>
                    </div>
                    <div class="form-group">
                        <label>Nama Rekening Pembayar</label>
                        <input type="text" class="form-control" name='user_account_name' id='user_account_name' placeholder="Nama Pembayar">
                    </div>
                    <div class="form-group">
                        <label>Bank Asal</label>
                        <input type="text" class="form-control" name='provider_bank' id='provider_bank' placeholder="Nama Pembayar">
                    </div>
                    <div class="form-group">
                        <label>Bank Tujuan</label>
                        <input type="text" class="form-control" name='payment_bank_user_name' id='payment_bank_user_name' placeholder="Bank Tujuan">
                    </div>
                    <div class="form-group">
                        <label>No Transafer</label>
                        <input type="text" class="form-control" name='no_transaction' id='no_transaction' placeholder="Jumlah di Transfer">
                    </div>
                    <div class="form-group">
                        <label>Transfer Date</label>
                        <input type="text" class="form-control" name='transfer_date' id='transfer_date' placeholder="Jumlah di Transfer">
                    </div>
                    <div class="form-group">
                        <label>Deskripsi</label>
                        <textarea class="form-control" name='description' id='description' placeholder="Jumlah di Transfer"></textarea>
                    </div>

                    <div class="form-group">
                        <label>Total Transfer</label>
                        <input type="text" class="form-control" name='total_transfer' placeholder="No total_transfer">
                    </div>
                    <div class="form-group">
                        <label>Bukti Transaksi (optional)</label>
                        <input type="file" name="scan">
                      </div>
                    <button type="submit" class="btn btn-primary">Submit</button>
                </form>
                </div>
            </div>
        </div>
    </div>

Ajax腳本

$(document).ready(function(){
    $("#cek_invoice").click(function(){
        data_invoice = $('#invoice_id').val();
        var url = "<?php echo base_url('Payment/getDetail_transaction/');?>"+'/'+data_invoice;
        $.ajax({
            url : url,
            type: "POST",
            success: function(data) {
                alert(data);
                 $('#payment_bank_user_name').val(data.payment_bank_user_name);
            },
            failure: function() {
                alert('fail');
            }
        });
    }); 
});

您應該在編碼后回顯結果! 看到這個:

<?php 
            public function getDetail_transaction($invoice_id){
                    $result = $this->db->get_where('tblTransaction',  array('payment_trx_id' => $invoice_id))->first_row();
                    $data = json_encode($result);
                    echo $data;   //echo data
            }
?>

在ajax中,你應該解析JSON數據:

$(document).ready(function(){
$("#cek_invoice").click(function(){
    data_invoice = $('#invoice_id').val();
    var url = "<?php echo base_url('Payment/getDetail_transaction/');?>"+'/'+data_invoice;
    $.ajax({
        url : url,
        type: "POST",
        success: function(data) {
            var dun = $.parseJSON(data);
            $('#payment_bank_user_name').val(dun.payment_bank_user_name);
        },
        failure: function() {
            alert('fail');
        }
    });
}); });

采用

echo $data;exit;

代替

return $data;

要顯示數據(獲取響應后)-

var data = $.parseJSON(data);
$('#your_input_field').val(data.payment_bank_user_name);
public function getDetail_transaction($invoice_id){
    $result = $this->db->get_where('tblTransaction', array('payment_trx_id' => $invoice_id))->first_row();    
    $data = json_encode($result);    
    echo $data;
}

和您的javascript編輯下面的行

success: function(data) {    
  alert(data);    
  var obj = $.parseJSON(data);    
  $('#payment_bank_user_name').val(obj.payment_bank_user_name);    
},   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM