javascript - 如何使用调用 PHP 脚本的 AJAX 接收数组?

标签 javascript php jquery ajax autocomplete

基本上我所做的是使用 AJAX 自动填充文本框,以从调用 C 函数的 PHP 脚本中获取信息。

这是我在理论上发现的:(假设只接收一个值)

$(document).ready(function(){
    window.setInterval(function(){
        var ajaxurl = 'php/portserverclient.php',
        $.post(ajaxurl, NULL, function (response) {
            $('#v1').val(response); 
        });
    }, 5000);
});

现在,如果这行得通,我相信它会成功。如果我收到一个值数组,那么函数内部的输入就不能响应,对吗?那么,我需要对其进行哪些更改才能使其成为一个数组?

需要说明的是,我的 PHP 脚本使用 echo 输出其信息。我宁愿以更“标准”的方式输出,如 V1 = 120、V2 = 120 等,但 PHP 对我来说是新的,我目前正在研究。谢谢。

编辑: 只是为了更清楚

这样的东西行得通吗?

$(document).ready(function(){
    window.setInterval(function(){
        var ajaxurl = 'php/portserverclient.php',
        $.post(ajaxurl, NULL, function (response[]) {
            $('#v1').val(response[0]);
            $('#v2').val(response[1]);
            $('#v3').val(response[2]);
        });
    }, 5000);
});

最佳答案

由于您在 PHP 端使用 echo,响应只能是一个字符串。
但是,如果该字符串形成为有效的 JSON,您将能够像您希望的那样使用它。

所以在 PHP 端,确保 json 格式有效:

$array = [120,340,800];

echo json_encode($array);

然后在 JS 中......你收到一个字符串......你必须解析它以使其成为一个数组。

$(document).ready(function(){
  window.setInterval(function(){
      var ajaxurl = 'php/portserverclient.php',
      $.post(ajaxurl, NULL, function (response[]) {
          var responseArray = JSON.parse(response);
          $('#v1').val(responseArray[0]);
          $('#v2').val(responseArray[1]);
          $('#v3').val(responseArray[2]);
      });
  }, 5000);
});

关于javascript - 如何使用调用 PHP 脚本的 AJAX 接收数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594151/

相关文章:

php - 启用 prettyurl 后如何在 Yii2 中获取额外的 $_GET 参数?

javascript - PHP 表单处理 - 使用 javascript 显示错误消息

javascript - KnockoutJs v2.3.0 : "cannot apply bindings multiple times to the same element"

javascript - 使用 addClass/removeClass 创建点击事件、点击计数,并使用 localStorage 防止用户稍后再次点击

javascript - 调试慢速网页的工具/插件

java - 如何使用 Selenium 在 Indeed 上单击“立即申请”按钮?

php - PDO 返回空结果 o 最后结果 Mysql

php - Ajax 请求和我的 Symfony 1.4 响应 : Contents doesn't match

javascript - 如何获取已上传图片的列表?

javascript - 未捕获的 TypeError : window. 重新加载不是函数