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