2011-11-24 72 views
0

我在Django有一個搜索表單。當用戶點擊提交按鈕時,頁面將重新加載並獲取查詢中的新元素。我試圖在Ajax Query中這樣做,但是當我獲得成功選項中的元素時,我不知道如何將新數據更改(分配)給變量。如何使用Ajax查詢更新Django查詢變量?

JS

$.ajax({ 
     url: 'url', 
     type: "POST", 
     data: "name=" + selected, 
     success: function(data){ 
      alert(data); 
     }, 
     error: function (xhr, textStatus, thrownError){ 
      alert("xhr status: " + xhr.statusText); 
     }, 
    }); 

視圖

def search(request, template_name="search/search.html"): 

    if request.method == 'POST': 

     search_terms = request.POST.get('name') 

     t_places = Place.objects.filter(category__in=search_terms) 
     places = TranslatedPlace.objects.filter(place__in=t_places) 

     return HttpResponse(places) 

HTML

{% for item in places %} 
    <li class="search_item"> 
     <div>{{ item.name }}</div> 
     <div>{{ item.owner }}</div> 
     <div>{{item.place.category }}</div> 
     <div>{{item.locality}}, {{item.county}}</div> 
    </li> 
{% endfor %} 

當我收到新的數據在阿賈克斯的 '數據' 變量我怎麼能在Django的改變'地方'變量?

+0

你可以張貼'html'的蟒蛇吐出 – Rafay

+0

阿賈克斯更迭選項得到的元素在裏面查詢下面的代碼,我在視圖中不返回任何HTML代碼 – beni

回答

0

可以修改阿賈克斯成功處理程序

$("li.search_item").find("div").each(function(i,j){ 
$(j).html("one"+(i+1)); 
}); 

http://jsfiddle.net/3nigma/AueSp/1/

+0

我認爲Jquery html函數使我的代碼變得困難,因爲我在Django中安裝了autopaginate(分頁模塊),因此當用戶更改頁面時,我必須再次更改數據。有沒有另一種形式來做到這一點? – beni

+0

感謝您的回答。我已經看到我需要這樣做,所以我要使用Dajax。 – beni