2012-03-19 14 views
0

我想實現一個功能,但我不知道如何去做。我的項目利用Django爲前端實現後端邏輯和模板以及Google Closure JavaScript庫。下面在成功的AJAX帖子後重投一個HTML模板片段或節

我的使用情況給出:

我用的是「速度」值來計算的總金額爲衆多實體。實體以表格格式顯示如下:

<!-- I need to reload this table again. --> 
<table class = "striped" ....> 
<thead> 
    <tr> 
     <th>Entity</th> 
     <th>Amount (USD)</th> 
     <th>Rate (%)</th> 
    </tr> 
    </thead> 
    <tbody> 
    {% for entity in entities %} 
    <tr> 
     <td>{{ entity.name }}</td> 
     <td>${{ entity.total }}</td> 
     <td>{{ entity.rate }}</td> 
    </tr> 
    {% endfor %} 
    </tbody> 
</table> 

該比率在數據庫表中可用來計算總金額。但我必須做以下「假設」情景; 如果「費率」發生變化,總數是多少?

我必須接受新的費率如下輸入框:

<label for="Updated Rate"> 
<input type=number id="updatedRate" name="updatedRate" value="0" /> 
<input type="button" value="Update Rate" /> 
<input type="button" value="Recalculate Entities"/> 
<input type="reset" value="Reset rate and Recalculate"/> 

我的更新速率值存儲到Windows的本地存儲,當用戶點擊該更新率按鈕,然後。如果用戶點擊重新計算實體按鈕,那麼我想向後端發出一個AJAX請求來重新計算更新後的值,並使用更新的值重新呈現表格。如果用戶重置費率值,則重新計算的值必須在此事件中,所使用的費率將從數據庫中提取,並且表格必須重新呈現。

我知道如何向後端發出一個AJAX請求來重新計算數據。但是我不知道如果「速率」已更新或重置,如何重新渲染表。

回答

2

您需要一種方法來識別您計算的實體。喜歡的東西:

{% for entity in entities %} 
<tr data-id="{{ entity.id }}"> 
    <td>{{ entity.name }}</td> 
    <td class="total">${{ entity.total }}</td> 
    <td>{{ entity.rate }}</td> 
</tr> 
{% endfor %} 

然後在AJAX回調的總取代:

$.ajax({ 
    url: 'someurl', 
    success: function(json) { 
    $('tr[data-id=' + json.id + '] td.total').text(json.total); 
    } 
}); 

當然返回數據的實際結構將發生變化。但我認爲你已經有了基本的結構。

這有幫助嗎?

+0

讓我今天嘗試這種方法。謝謝你的幫助。 – Kartik 2012-03-19 17:09:29

+0

這工作。我對延遲迴復表示歉意 – Kartik 2012-04-06 17:46:58