如何使用json设置一个带有php代码结果的js变量?

时间:2013-08-15 19:48:40

标签: php javascript json

我尝试使用json设置一个带有php代码结果的js变量,但是它无效。下面的代码显示了我正在尝试做的事情。

PHP正在返回此内容。

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

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

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

我做错了什么?

2 个答案:

答案 0 :(得分:1)

  

我做错了什么?

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

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

您可以找到有关How do I return the response from an asynchronous call?的已接受答案的更详细说明。

答案 1 :(得分:1)

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

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

var total;

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

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