簡體   English   中英

使用Ajax發布到PHP並閱讀結果

[英]Post to PHP with Ajax and read Results

我已經閱讀了本網站上的許多類似問題,並且在理解我的代碼有什么問題方面遇到很多麻煩。 我正在嘗試根據另一個復選框的值動態更新選擇框,但是由於某種原因,一旦我使用Ajax發布到PHP,似乎無法獲取任何類型的響應數據。

JAVASCRIPT:

function toggleHiddenDIV()
{
    var dc = document.getElementById("datacenter");
    var dcVal = dc.options[dc.selectedIndex].value;

    // Check if Datacenter selection has no Value selected
    if(dcVal != '')
    {
        document.getElementById("hidden-options").style.display="block";

        $.ajax({
            type: "POST",
            url: "handler.php",
            data: { 'action_type': 'update_inventory_fields', id: dcVal },
            success: function(response)
            {
                alert(response);
            }
        });
    }
    else
    {
        document.getElementById("hidden-options").style.display="none";
    }
};
</script>

PHP:

if ($_POST['action_type'] == "update_inventory_fields")
{
    if ($_SERVER["REQUEST_METHOD"] == "POST")
    {
        if (empty($_POST["id"])) { return; }
    }

    $result = mysql_query("SELECT id, ip, block FROM ipv4 WHERE datacenter = " . $_POST["id"]);

    $data = array();
    while($row = mysql_fetch_array($result, true))
    {
        $data[] = $row;
    };

    return json_encode($data);
}

不要調用return (因為您不返回函數); 只需將內容echo到頁面上即可:

echo json_encode($data);

更改為此...無需return ,只需echo ,因為您在函數調用之外

if ($_POST['action_type'] == "update_inventory_fields")
{
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    if (empty($_POST["id"])) { return; }
}

$result = mysql_query("SELECT id, ip, block FROM ipv4 WHERE datacenter = " . $_POST["id"]);

$data = array();
while($row = mysql_fetch_array($result, true))
{
    $data[] = $row;
};

echo json_encode($data);
}

如果您發布的php代碼位於函數內部,則需要使用echo functionname() ;

如果PHP代碼不在函數中,則只需使用echo json_encode($data);

暫無
暫無

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

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