[英]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.