亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過成功的 AJAX 響應輸出空函數

通過成功的 AJAX 響應輸出空函數

PHP
炎炎設計 2023-04-21 15:13:02
我在 AJAX 中的功能有問題。我創建了一個對返回 JSON 的 PHP 文件的 AJAX 調用。對于循環此 JSON,我創建了一個函數,如果 AJAX 成功,我將運行該函數。但實際上數據是空的。    <script>    document.getElementById("getproducts").addEventListener("submit", sendAjax);    function sendAjax(event) {    var q = document.getElementById('search').value;        var xhttp = new XMLHttpRequest();        xhttp.onreadystatechange = function() {            if (this.readyState == 4 && this.status == 200) {                display(this.responseText);            }        }        xhttp.open("POST", "results.php", true);        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");        xhttp.send('search='+q);        event.preventDefault();    }    function display( jsdata ){        for ( var key in jsdata ){            var htmltabel = '';            var datanode = document.createElement("div");            htmltabel += '<div class="id">' + jsdata[key]['id']    + '</div>';            content    = htmltabel;            datanode.innerHTML = content;            document.getElementById("resultt").appendChild(datanode);        }    }    </script>如果我像這樣在函數中編寫 JSON 硬代碼,那么一切都很好。var hardcoded = {"1736":{"id":"1736","post_title":"Test explode","_sku":"12345","_stock":null,"_price":"9.50"}}//PART OF THE CODEif (this.readyState == 4 && this.status == 200) {    display(hardcoded);}我該如何解決該函數使用響應的 JSON 的問題?
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

這是一個更正的腳本,您應該只將 responseData 從轉換string為Json Object!


document.getElementById("getproducts").addEventListener("submit", sendAjax);

    function sendAjax(event) {

    var q = document.getElementById('search').value;

        var xhttp = new XMLHttpRequest();

        xhttp.onreadystatechange = function() {

            if (this.readyState == 4 && this.status == 200) {

                display( JSON.parse(this.responseText) ); // You should convert the response from string to a valid JSON

            }

        }

        xhttp.open("POST", "results.php", true);

        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

        xhttp.send('search='+q);

        event.preventDefault();

    }


    function display( jsdata ){

        for ( var key in jsdata ){

            var htmltabel = '';

            var datanode = document.createElement("div");

            htmltabel += '<div class="id">' + jsdata[key]['id']    + '</div>';

            content    = htmltabel;

            datanode.innerHTML = content;

            document.getElementById("resultt").appendChild(datanode);

        }

    }


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號