当前位置: 首页 > 知识库问答 >
问题:

未定义-使用jQuery AJAX从PHP返回多个值

彭洲
2023-03-14

因为我没有定义。我失败的地方?

代码:


    function add(id,cost){
            var info = {
                    "id" : id,
                    "cost": cost,
            };
            $.ajax({
                    data:  info,
                    url:   'a.php',
                    type:  'post',
                    success:  function (datos) {
                             alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
                    }
            });
    }

存档.php php:


    $cost=$_POST['id']*$_POST['cost'] + 137;
    echo json_encode(array("r1" =>$_POST['id'], "r2" => $cost));

共有2个答案

汪翰墨
2023-03-14

Datos可能是一个字符串

您可以执行以下操作:

datos = JSON.parse( datos );

或者,您可以将返回类型设置为JSON:

$.ajax({
    data:  info,
    dataType: 'json',
    url:   'a.php',
    type:  'post',
    success:  function (datos) {
    alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
    }
});
弓嘉纳
2023-03-14

为什么您认为$.ajax会将datos理解为JSON?您需要指定它,您可以使用几种方法来完成它。

解析它

    success:  function (datos) {
      datos = JSON.parse(datos);
      alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
    }

$.ajax中指定自身

$.ajax({
                    data:  info,
                    url:   'a.php',
                    type:  'post',
                    dataType:"json",
      ....

在PHP中设置头(对

header('Content-Type: application/json');

我建议你用第一个和第三个的组合。不要留下任何一块石头。

 类似资料:
  • 问题内容: 因此,当我打开灯箱时,我试图禁止在页面上滚动,而我发现这个确实有用的脚本非常有用。不幸的是,当我在自己的页面上使用它时,它也禁止在灯箱中滚动。我开始用警报调试代码,只是发现该事件。wheelDelta在我的页面上返回“undefined”,而在JSFiddle中,它返回-120。 问题答案: jQuery事件处理程序中的对象不能反映真实事件。是IE和Opera的非标准事件属性,可通过j

  • 问题内容: 我正在使用以下jQuery代码: 我该如何做这样的事情: 所以我可以将返回的结果分成两个html元素? 多数民众赞成在使用的PHP,我想回显另一个语句,我可以将其放入另一个HTML元素 这有意义吗? 问题答案: 使用从PHP关联数组转换成JSON和使用,它会返回一个Javascript数组。 例: 用Javascript:

  • 我正在尝试为discord bot执行命令,它从MySQL表中输出整数。 我尝试使用async/await、Promissions和回调来实现这一点,但结果总是一样的。在这里,我用promise再次尝试,因为在过去它不知何故起了作用。现在不会了。 下面是返回promise的函数: 下面的代码将结果赋值给Access Level变量: Catch函数捕获表示“TypeError:无法读取未定义的属性

  • 我是JS的新手,不明白为什么我的程序中的图像没有改变。所有的变量都运行良好。下面是片段 所有的图像都被命名为1.jpg,2.jpg,3.jpg,4.jpg,直到24。这是一种很奇怪的方式,我也知道,如果有人知道更好的方式,那会更好。

  • 我有下面的函数,它可以正确地从响应中提取图像的前缀和后缀,并生成一个可变的结果,其中包含场馆图像的url。然而,当我返回结果时,我一直没有定义。这里出了什么问题?

  • 问题内容: 我在这段代码上遇到问题;返回值返回为“ undefined”。有什么问题? 较新的代码: 我怎么称呼它: 问题答案: 根据您的修改进行更新 解决这些问题应可使代码正常工作。 旧答案 您正在以 同步 模式调用XMLHttpRequest ,这意味着它将 阻塞 脚本,直到请求完成为止,因为您是在阻塞调用之后(即请求已经完成之后)分配回调,因此您的代码永远不会收到通知。 由于同步模式会阻止脚