2012-10-10 114 views
0

我想從PHP腳本返回一個json編碼的字符串。從服務器使用jQuery POST函數返回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的價值和休息的元素是「$未定義」。

請幫助。

回答

1

看來你只需要使用parseJSON()解析JSON數據到一個對象:

$.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); 
}); 
0

您應該使用$ .getJSON而不是$ .post來獲取json字符串。

不要忘了你的內容標題設置爲JSON

+0

根據jQuery文檔'getJSON()'使用GET請求。 OP想要使用POST請求。 – Sirko

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); 
}); 
0

你可以簡單地使用下面的腳本只是刪除$陣列,並要 返回的數據進行替換:

前兩個頭部防止緩存響應的瀏覽器(使用IE問題,GET請求) 和第三爲JSON設置正確的MIME類型。

讓我們說這是訂單的內容。PHP文件:

開始腳本

header('Cache-Control: no-cache, must-revalidate'); 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Content-type: application/json'); 

$array = array("price"=>10,"product_id"=>1); 
echo json_encode($array); 

端腳本

,並用:

$.post("order.php",function(data){ 
alert(data.price); 
}); 

我們將得到10 就是這樣,很簡單的:)

0

我知道這是舊的,但這是幫助所有你必須添加一個額外的參數('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:那麼你的迴應PHP必須輸出這個

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

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'); 
相關問題