我有10行的HTML表,其中有一個「當前值」列和「價格」列。jQuery和ajax
問:第一排1000美元,第五排10000美元。
如果用戶已將價格列更改爲GBP,我如何通過jQuery進行ajax調用並更新當前值。
這裏最好的辦法是什麼?
我有10行的HTML表,其中有一個「當前值」列和「價格」列。jQuery和ajax
問:第一排1000美元,第五排10000美元。
如果用戶已將價格列更改爲GBP,我如何通過jQuery進行ajax調用並更新當前值。
這裏最好的辦法是什麼?
所以,你將需要採取(現在假設PHP)的步驟....
綁定一個處理程序,以您的貨幣選擇。 (假設現在選擇多種貨幣)。在這個處理程序中包含一個jQuery ajax調用。設置一個變量等於所選貨幣。
window.onload=function(){
$('#select_id').change(function(){
var currency = $(this).val();
$.ajax({
type: "POST",
dataType: "json",
url: "/ajaxpage.php",
data: {
currency:currency
}
success: function(data){
$.each($('#table tr ',function(index,value){
$(this).find('.price_col').html(data[index]);
});
},
failure: function(){
alert('failed');
}
});
});
}
所以在這裏我們有一個ajax調用ajaxpage.php與發佈數據,貨幣。假設我們將返回一個帶有新貨幣值的json編碼的字符串。在成功處理程序中,我們遍歷表格行,並用相應的值更新適當的表格單元格。這可能稍微有些倒退,所以請確保數據集匹配。
在服務器端,我們所要做的就是返回json_encoded陣列看起來像
array(
[0] => '1234'
[1] => '5555'
// and so on
)
一旦你有了新的價格計算(讓我知道如果你還需要將所有的舊的價格,我只是假設你已經知道了,因爲他們在第一時間到了那裏,但正如你所描述的情況可能不完全),所有你需要做的,完成魔術Ajax是....
echo json_encode($array);
我剛剛看到你正在使用Java ....你可以使用
org.json.JSONObject
和
response.getWriter().print(jsonObject.toString());
此最後部分,並改變在適當Ajax請求的文件名。
編輯:根據您的評論,我建議給每個選擇一個唯一的ID,並有所有選擇共享一個類。所以我們不必在這個例子中分割字符串,讓我們說「1」,「2」等等。而你的行有ID爲row_1,row_2等。在這種情況下,它將看起來像.. ..
window.onload=function(){
$('#.selector').change(function(){
var row_id = $(this).attr('id');
$.ajax({
type: "POST",
dataType: "json",
url: "/ajaxpage.php",
data: {
id:row_id
}
success: function(data){
$('#row_'+data.id).find('.price_col').html(data.cval);
},
failure: function(){
alert('failed');
}
});
});
}
在這種情況下返回的JSON對象應該是具有id和cval屬性的單個對象。如果您有問題,調試,
console.log(data);
在成功處理程序的第一行
,並檢查您的開發工具中鉻/ Firefox的下XHR請求。這會爲您提供有關請求和您要返回的數據的其他信息。
我會在此做出一個答案,但請確認接受,如果你覺得它有用:) – Orbit 2011-03-05 21:14:08
@Orbit - +1爲「胸圍答案」。我期待着閱讀你的答案。 – karim79 2011-03-05 21:15:22
@raj - 你使用什麼服務器端語言? – Orbit 2011-03-05 21:16:06