2011-03-05 37 views
0

我有10行的HTML表,其中有一個「當前值」列和「價格」列。jQuery和ajax

問:第一排1000美元,第五排10000美元。

如果用戶已將價格列更改爲GBP,我如何通過jQuery進行ajax調用並更新當前值。

這裏最好的辦法是什麼?

+2

我會在此做出一個答案,但請確認接受,如果你覺得它有用:) – Orbit 2011-03-05 21:14:08

+0

@Orbit - +1爲「胸圍答案」。我期待着閱讀你的答案。 – karim79 2011-03-05 21:15:22

+0

@raj - 你使用什麼服務器端語言? – Orbit 2011-03-05 21:16:06

回答

1

所以,你將需要採取(現在假設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請求。這會爲您提供有關請求和您要返回的數據的其他信息。

+0

感謝您的回答,但在這裏我怎麼知道用戶會改變特定的行。有10行。 – rajputhch 2011-03-05 21:41:26

+0

@raj哦,每一行都有一個設置?對不起,我以爲你想批量轉換,如果他們改變貨幣。我會附上答案。 – Orbit 2011-03-05 21:42:37

+0

@raj更新迴應 – Orbit 2011-03-05 21:49:10