如何使用json将php代码的结果设置为js变量?

如何使用json将php代码的结果设置为js变量?,php,javascript,json,Php,Javascript,Json,我试图用使用json的php代码的结果设置js变量,但它不起作用。下面的代码显示了我正在尝试做的事情 PHP正在返回这个 echo json_encode($row['total']); 我正在尝试恢复js中的变量,这是代码 var total = $.getJSON('totalDeImoveis.php?id=316'); 我做错了什么 我做错了什么 您希望getJSON是同步的,而实际上它是异步的。您必须使用回调,而不是尝试将getJSON的返回分配给total: $.getJSON(

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

PHP正在返回这个

echo json_encode($row['total']);
我正在尝试恢复js中的变量,这是代码

var total = $.getJSON('totalDeImoveis.php?id=316');
我做错了什么

我做错了什么

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

$.getJSON('totalDeImoveis.php?id=316', function(data){
    console.log(data);
    // continue program flow from here
});
您可以找到有关RTM的公认答案的更详细解释。

RTM:

.getJSON不返回“getted”值。您需要定义一个函数,以便在服务器吐出结果后接受该结果,例如

var total;

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

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

输出是什么样子的?这没有错,但有点误导。OP可能希望在getJSON调用的正下方填充
total
,但这不会发生。这一点很好。我会在答案中加上这个。谢谢,我会这样做的。