3

PHPスクリプトからjsonでエンコードされた文字列を返そうとしています。

$.post("order.php", { product: product_id, coupon: coupon },
function(data) {
    $("#price").html("$" + data.price);
    $("#discount").html("$" + data.discount);
    $("#total").html("$" + data.total);
});

コールバックでアラート関数を使用して、PHP からの戻り値を確認しようとしました。

{"price":249,"discount":"0.00","total":249}

ただし、#price 要素と rest 要素の値は「$undefined」です。

助けてください。

4

5 に答える 5

5

次を使用してJSONデータをオブジェクトに解析する必要があるようですparseJSON()

$.post("order.php", { product: product_id, coupon: coupon },
function(data) {
    data = $.parseJSON( data );
    $("#price").html("$" + data.price);
    $("#discount").html("$" + data.discount);
    $("#total").html("$" + data.total);
});
于 2012-10-10T09:59:13.903 に答える
3

これが古いことは知っていますが、これはこの問題を抱えている可能性のあるすべての人々を助けるためのものです

次のように、メソッド呼び出しに追加のパラメーター ( 'json') を追加する必要があります。$.post

$.post(url,data_in,function(data_out){ your_code here },'json');

知らない人のためにPHP、すべての処理の最後に次のようなものを出力する必要があります。

die(json_encode(array("RESPONSE"=>"OK","MYMESSAGE"=>"THIS IS SUCCESSFULL")));

HTMLまた、代わりに出力の代替手段がありますJSON

$.post(url,data_in,function(data_out){ your_code here },'html');

あなたの応答PHPはこれを出力する必要があります:

echo "<div id=\"RESPONSE\">OK</div>";   
echo "<div id=\"MYMESSAGE\">THIS IS SUCCESSFULL</div>";
die();

したがって、元の質問に答えるには、次のcodeようにする必要があります。

$.post("order.php", { product: product_id, coupon: coupon }, function(data) {
    $("#price").html("$" + data.price);
    $("#discount").html("$" + data.discount);
    $("#total").html("$" + data.total);
},'json');
于 2015-11-29T14:32:30.550 に答える
0

サーバーから文字列を取得しているので、json として解析する必要があります

使用する

$.post("order.php", { product: product_id, coupon: coupon },
function(data) {
    data = jQuery.parseJSON( data );
    $("#price").html("$" + data.price);
    $("#discount").html("$" + data.discount);
    $("#total").html("$" + data.total);
});
于 2012-10-10T10:19:04.150 に答える
-1

json 文字列を取得するには、$.post の代わりに $.getJSON を使用する必要があります。

コンテンツ ヘッダーを JSON に設定することを忘れないでください

于 2012-10-10T09:58:36.037 に答える