簡體   English   中英

從PHP返回多個值到JS函數(AJAX / SQL)

[英]return multiple values from PHP to JS function (AJAX/SQL)

我想在我的網站上為“常見問題”部分提供一個小型搜索引擎。 它所做的只是在按下按鈕時在SLQ_DB中搜索該術語。

我想在兩個單獨的div中輸出問題和答案。 因此,我有屬於div的$ data和$ data1。

$('input#name-submit').on('click',function()
{
    var name = $('input#name').val();
    //alert(name);
    if($.trim(name) != "")
    {
        $.post('ajax/name.php',{name:name},function(data, data1)
            {
                $('div#name-data').html(data);
                alert(answer);
                $('div#name-data1').html(data1);

            });
    }
});

但是,當我按下Enter鍵時,第二個div顯示“成功”。 但是第一個中有data和data1。 當我在js文件中寫入function(data1,data)時,data1擁有所有信息,而data只是“成功”。

這里發生了什么事?

PHP中的echo函數將變量的內容輸出到響應主體。 該正文是您的Web應用程序接收到的“字符串”。

假設您有這樣的代碼:

<?php
$var1 = "hello";
$var2 = "world";
echo $var1;
echo $var2;
?>

結果響應主體將如下所示: helloworld

現在,這是您的JS代碼:

$.post('ajax/name.php',{name:name},function(data) {
    console.log(data); // "helloworld"
});

jQuery會將響應主體傳遞給data變量,該變量現在包含heloworld

您需要以某種方式分離響應主體內的各個變量,例如使用JSON。

第一步是在服務器上編碼數據,就這么簡單:

<?php
echo json_encode(["var1"=>$var1, "var2"=>$var2]);
?>

這將創建一個響應主體,如下所示: {"var1":"hello","var2":"world"}

下一步的邏輯步驟是使用JavaScript解碼此JSON:

$.post('ajax/name.php',{name:name},function(data) {
    var res = JSON.parse(data);
    console.log(res.var1); // "hello"
    console.log(res.var2); // "world"
});

暫無
暫無

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

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