簡體   English   中英

Ajax通話沒有警報

[英]No alert from Ajax call

我正在嘗試從Ajax呼叫中提醒一些數據。 誰能發現我在做什么錯?

的PHP

while($row = $stmt->fetch()){
    echo json_encode($row);
}
echo "Done!";

Json_encode的結果/網絡預覽

{"flakId":"21098-10_flak-2"}{"flakId":"21098-10_flak-1"}Done!

JS

if(chosenObjNr){
    alert('I CAN see this alert')
    $.ajax({
        url:'php/update.php',
        type: 'POST',
        data: 'chosenObjNr=' + chosenObjNr,
        dataType: 'json',
        error: function (data){ alert("failed, i can see this!");},             
        success: function(data){  

            alert('I cannot see this alert!');
            alert(data);

            var data0;
            data0 = data[0];
            alert(data0);

            var falkId;
            flakId = data[0];
            alert(flakId);

            console.log(data);
        }

    });

};

結果

沒有警報,控制台中也沒有任何內容。

問題是,ajax的success部分永遠不會運行。 您將dataType定義為json,因此需要json。 您的PHP是echo 2 json和一個不需要的字符串。

因此,要檢查您的錯誤是什么,請在注釋中將fail功能添加為Sina sad:

if (chosenObjNr) {
alert('I CAN see this alert')
$.ajax({
    url: 'php/update.php',
    type: 'POST',
    data: 'chosenObjNr=' + chosenObjNr,
    dataType: 'json',
}).done(function (data) {
    alert('I cannot see this alert!');
    //Do what you want to do here
}).fail(function (msg) {
    alert('An error occured: ' + msg.statusText);
});

}

而且,如果您要修復.php刪除echo 'Done'; 部分,然后將記錄添加到數組中,完成后將其編碼為json:

$return = array();
while ($row = $stmt->fetch()) {
    $return[] = $row;
}
echo json_encode($return);

暫無
暫無

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

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