0

jsonを使用してphpコードの結果でjs変数を設定しようとしていますが、機能していません。以下のコードは、私がやろうとしていることを示しています。

PHPはこれを返しています。

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

js で変数を回復しようとしています。これがコードです。

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

私は何を間違っていますか?

4

2 に答える 2

1

私は何を間違っていますか?

getJSON実際には非同期であるとき、あなたは同期であることを期待しています。getJSONの戻り値をtoに割り当てようとする代わりに、コールバックを使用する必要があります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 呼び出しは IMMEDIATELY を返し、コードは引き続き実行されます。AJAX 呼び出しの結果は、サーバーが実際に処理を終了して結果を返すまで、しばらくしてから利用可能になります。おそらく、コードを「一時停止」して、答えが得られたら .getJSON 成功ハンドラの処理を再開させたいと思うでしょう。

于 2013-08-15T19:50:54.607 に答える