【问题标题】:return multiple values from PHP to JS function (AJAX/SQL)从 PHP 返回多个值到 JS 函数 (AJAX/SQL)
【发布时间】:2019-04-08 07:41:39
【问题描述】:

我想在我的网站上为常见问题解答部分提供一个小型搜索引擎。它所做的只是在按下按钮时在 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);

            });
    }
});

但是当我输入第二个 div 时显示“成功”。但是第一个里面有 data 和 data1 。当我在js文件中写function(data1, data)时,data1有所有信息,data只是“成功”。

这里发生了什么?

【问题讨论】:

  • 从您的 php 返回一个 json 字符串,然后在 javascript 中解析该字符串。这个网站上肯定有数百个预先存在的页面描述了如何做到这一点。

标签: javascript php html sql ajax


【解决方案1】:

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"
});

【讨论】:

    猜你喜欢
    • 2014-06-20
    • 2010-09-21
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 2021-02-25
    • 2011-04-14
    • 2018-01-01
    相关资源
    最近更新 更多