我尝试使用json设置一个带有php代码结果的js变量,但是它无效。下面的代码显示了我正在尝试做的事情。
PHP正在返回此内容。
echo json_encode($row['total']);
我正在尝试恢复js中的变量,这是代码。
var total = $.getJSON('totalDeImoveis.php?id=316');
我做错了什么?
答案 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成功处理程序恢复处理。