2014-07-20 37 views
0

我有一個ajax函數從django函數返回一個值。 我想使輸出成爲全球性的,以便我可以在選擇下拉列表中使用它。 這裏是我的代碼。如何使ajax全局返回的值

$(document).ready(function() 
{ 
    function AjaxCall(HandleData) 
    { 
    return $.ajax({ 
    url: "/evidence_values/", 
    type: "post", 
    data: {'evidence':document.getElementById('evidence').value}, 
    success: function(data){ HandleData(data);} 
        }); 
    } 

    $("#save").click(function(){ 
     AjaxCall(function(output){filter_data = output}); 
           }); 

    function CallAjax(DataHandle) 
    { 
    return $.ajax({ 
        url: "/get_evidence_items/", 
        type: "post", 
        success: function(data){DataHandle(data);} 
        }); 
    } 

    $("#evidence_selected").click(function(){ 
     CallAjax(function(output){items_data = output}); 
              }); 

,並在其他地方的index.html下拉

<select name="evidence_selected" id="evidence_selected" style="margin-right:20px;color:#5c89db;margin-top:20px;margin-left:40px;height: 2em;border-radius: 3px;"> 

<option value="selectedvidence" id="selectedvidence"name="selectedvidence">Select Evidence Number</option> 

{% for item in items %} 
<option value="{{item.evidence}}">{{ item.evidence }}</option> 
{% endfor %} 
<option id="new"value="new">New</option> 

</select> 
+0

如果你在全局範圍內有一個變量,那麼你可以在你定義的'success'函數中寫入它。然而,使用'success'來調用一個重寫select中的值的「update」函數可能是一個好主意。相關:http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call?rq=1 –

回答

0

你可以有你的處理數據功能插入選項into the select?

$("#evidence_selected").append('<option value=1>' + dataStr + '</option>'); 

或者,值存儲在一個array:

var evidenceArray = []; 
evidenceArray.push(dataStr); 

然後創建foreach從數組:

$("#evidence_selected").empty(); 
$.each(evidenceArray , function() 
{ 
    $("#evidence_selected").append('<option value=1>' + this+ '</option>'); 
}); 

但如果你是在阿賈克斯成功填充我不知道你爲什麼會使用for-each和未插入?

+0

嗨Stefan,顯示[「123」,「45566」, 「wrtt」,「4466」]而不是逐個向下顯示項目 – user3670066