2010-12-03 67 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();创建一个查询字符串参数。