簡體   English   中英

Jquery ajax 無 PHP 響應

[英]Jquery ajax No PHP response

我的腳本運行良好,它提醒我數據已保存。 但出於調試原因,我想查看 PHP(“Procees.php”)響應以及 html 格式。 我可以在螢火蟲中看到它,但我不知道如何使用 jquery 輸出它。 我的代碼如下;

            var dataString ='doctype='+ doctype + '&paytype=' + paytype + '&docno=' + docno + '&bookno=' + bookno + '&prname=' + prname +'&pename='+pename+'&paydate='+paydate+'&inpdate='+indate 
        +'&e1='+e1 +'&e2='+e2 +'&e3='+e3 +'&e4='+e4 +'&e5='+e5 +'&e6='+e6 +'&e7='+e7 +'&e8='+e8 
        +'&accname1='+accname1 +'&accname2='+accname2 +'&accname3='+accname3 +'&accname4='+accname4 +'&accname5='+accname5 +'&accname6='+accname6 +'&accname7='+accname7 +'&accname8='+accname8 
        +'&dr1='+dr1 +'&dr2='+dr2 +'&dr3='+dr3 +'&dr4='+dr4 +'&dr5='+dr5 +'&dr6='+dr6 +'&dr7='+dr7 +'&dr8='+dr8
        +'&cr1='+cr1 +'&cr2='+cr2 +'&cr3='+cr3+'&cr4='+cr4 +'&cr5='+cr5 +'&cr6='+cr6 +'&cr7='+cr7 +'&cr8='+cr8 +'&ref='+ref;


        //alert (dataString);return false;
        $.ajax({
        type: "POST",
        url: "bin/process.php",
        data: dataString,
        cache:false,
        datatype: 'json',               
        success: function(data) {

        $('#display').html("<h2>Data submitted!</h2>")
        .append("<p>Wait........</p>")
        .hide()
        .fadeIn(1500, function() {
        $('#display').append("<img id='checkmark' src='images/check-black.jpg' />");
        $('#display').html("<h3>Being Processed...</h3>")
        .fadeIn(1500, function() {
        $('#display').append("Saved <img id='checkmark' src='images/check-black.jpg' />")
        $('#thisfrm').get(0).reset();
        $("#indate").val(indate)






        });

        });
        }
        });


        return false;   

我的 PHP 回聲

                echo 'This is processing file.\n';


            $doctype = $_REQUEST['doctype'];
            $paytype = $_REQUEST['paytype'];
            $docno = $_REQUEST['docno'];
            $bookno = $_REQUEST['bookno'];
            $prname = $_REQUEST['prname'];
            $pename = $_REQUEST['pename'];
            $paydate = $_REQUEST['paydate'];
            $inpdate = $_REQUEST['inpdate'];
            $ref = $_REQUEST['ref'];


            echo $doctype."<br>";
            echo $paytype."<br>";
            ....
            ... and so on

但它沒有顯示在網頁上的任何地方。

提前感謝您的幫助。

您需要 json_encode 您的響應,因為您的 jQuery 期待 json!

echo json_encode(array("doctype"=>$doctype, "paytype"=>$paytype));

在 AJAX 請求期間,PHP 的 output 數據將在您的success回調 ZC1C425268E68A45 的data變量中。 如果您想將 append 的數據放到您的頁面上,您需要在您的成功 function 中這樣做。

$.ajax({
    type: "POST",
    url: "bin/process.php",
    data: dataString,
    cache:false,          
    success: function(data) {
        // the data variable contains all PHP output during this request
        $('#display').html(data);
    }
});

另請注意,您的腳本當前指定它是 JSON 請求 - jQuery 應該將 output 視為 Z0ECD18ZC1D7A2D7 數據。 但是,您在 PHP 代碼段中輸出文本/html 數據。 a) append 你的 html 變成一個變量,然后調用print json_encode($mydata); , 或 b) 從請求中刪除datatype屬性。 jQuery 將“自動檢測”響應類型。 上面的例子假設你不改變 PHP 代碼,下面是關於如何正確使用 JSON 的詳細信息(需要更改為 PHP)。

要執行 JSON 方法,而不是使用echo ,請使用變量:

$html = '';
$html .= 'Doctype: '.$doctype;
$html .= 'Something elese: '.$something_else;
// etc...
die(json_encode(array('html'=>$html)));

然后你的 jQuery ajax function 看起來像這樣:

$.ajax({
    type: "POST",
    url: "bin/process.php",
    data: dataString,
    cache:false,
    datatype: 'json',           
    success: function(data) {
        $('#display').html(data.html);
    }
});

把它放在你的成功 function 里面。

$('#display').append(data);

暫無
暫無

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

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