0

我正在尝试使用 json 使用 php 代码的结果设置 js 变量,但它不起作用。下面的代码显示了我正在尝试做的事情。

PHP正在返回这个。

echo json_encode($row['total']);

我正在尝试恢复 js 中的变量,这是代码。

var total = $.getJSON('totalDeImoveis.php?id=316');

我究竟做错了什么?

4

2 回答 2

1

我究竟做错了什么?

您期望getJSON是同步的,而实际上它是异步的。您必须使用回调而不是尝试分配 to 的getJSON返回total

$.getJSON('totalDeImoveis.php?id=316', function(data){
    console.log(data);
    // continue program flow from here
});

您可以找到有关如何从异步调用返回响应的已接受答案的更详细说明?.

于 2013-08-15T19:50:43.833 回答
1

RTM:http ://api.jquery.com/jQuery.getJSON/

.getJSON 不返回“获取”值。一旦服务器吐出结果,您需要定义一个函数来接受结果,例如

var total;

$.getJSON('totalDeImoveis.php?id=316', function(returned_data) {
    total = returned_data;
});

还要记住,AJAX 调用(getJSON 就是这样做的)是一个异步调用。.getJSON 调用将立即返回,您的代码将继续执行。AJAX 调用的结果要等到稍后服务器实际完成处理并发回结果时才能使用。您可能希望“暂停”您的代码并让 .getJSON 成功处理程序在答案可用后恢复处理。

于 2013-08-15T19:50:54.607 回答