2010-12-03 46 views
0

我是新來的所有django,ajax的東西..我在網上讀了一些教程,我試圖做一個簡單的形式,通過ajax張貼一些信息。與Django和jQuery的Ajax帖子

這裏是我的模板的一部分的jQuery:

<script type="text/javascript"> 

$(document).ready(function() { 

    $('#iEventAjax').submit(function() 
    { 
    var name = $('input[name=event_name]'); 
    var data = name.val(); 
    $.ajax({ 
           type:"POST", 
           url:"/mediaplanner/edit/", 
           data:data, 
           success: function(msg){ 
             alert(msg); 
           } 
         }); 
    }); 

和視圖代碼:

def iEventAjax(request): 
     if request.is_ajax(): 
       return HttpResponse("ok") 
     else: 
       return render_to_response("iEventSave.html",{}) 

好吧,當我張貼的東西,它返回的不是給了 「OK」 iEventSave.html信息。 任何建議,哪部分失敗?

回答

5

這有什麼代碼發生的事情:

  1. 您綁定一個處理程序上 形式提交
  2. 然後,您可以提交一個Ajax 響應返回「OK」
  3. 形式繼續提交作爲常規HTML表格
  4. 第二次提交 返回模板,因爲它是 GET請求,而不是AJAX

在jQuery中,你需要無論是從提交函數返回false,或撥打了preventDefault上的事件jQuery Submit Docs

所以:

$(document).ready(function() { 

$('#iEventAjax').submit(function() 
{ 
var name = $('input[name=event_name]'); 
var data = name.val(); 
$.ajax({ 
          type:"POST", 
          url:"/mediaplanner/edit/", 
          data:{my_data:data}, 
          success: function(msg){ 
            alert(msg); 
          } 
        }); 
return false; 
}); 
0

你想要做var data = name.serialize();創建一個查詢字符串參數。