2011-05-31 58 views
-1

urls.py:如何使用Django和Jquery實現ajax?

.... 
(r'^blog/post/$', post), 
.... 

查看代碼:

def post(request): 

    if request.method == 'POST': 



     post, created = Post.objects.get_or_create(
      title=request.POST.get("title"), 
      text=request.POST.get("text"), 

    ) 

    post_titles = [post.title for post in Post.objects.all()] 
    return render_to_response("index.html", {"post_titles":post_titles}) 

模板:

<script type="text/javascript" charset="utf-8"> 
      $(document).ready(function() { 

       $("input#submit").click(function() { 


       var title = $("#title").val(); 
        var text = $("#text").val();  

        var data = {"title":title,"text":text}; 

        $.post("/blog/post/", data, function(data){ 
         alert("Data Loaded: " + data); 
        }); 
       }); 


      }); 
     </script> 
     ......... 
     <div id="postbox"> 
     <form method="post" action=""> 
      <p>Enter Title</p><input type="text" name="title" id="title"> 
      <p>Enter Text</p><input type="text" name="text" id="text"> 
      <input type="submit" id="submit"> 
      </form> 
     </div> 

我要在訊息被添加到數據庫中,而不刷新頁面,也有 「標題」和「文本」被附加到HTML頁面的某處。請告訴我我做錯了什麼。謝謝。

+0

什麼問題?怎麼了?視圖是否被調用? POST是否實際發佈了或存在javascript錯誤?在把所有東西都放在這裏之前,你需要自己做一些調試。 – 2011-05-31 13:22:55

+0

有問題嗎?有什麼錯誤?一些更多的信息會更好 – 2011-05-31 13:36:46

回答

0

我使用Dajax/Dajaxice有很好的運氣,它有很好的文檔記錄,有幾個工作演示(帶有代碼),通過jQuery將Django與ajax集成在一起。如果您提供了調試輸出,我會給出更長的答案(例如,警報框是否出現;其中的文本是什麼)。我的猜測是,'index.html'的'render_to_response'的view函數不是你想要的ajax。通常情況下,您只需要將某種結構化數據(通常是json或xml)與服務器上的ajax一起發送(到之前呈現的頁面)。

+0

嘗試Dajax/Dajaxice ..感謝您的鏈接。 – 2011-05-31 14:50:04

相關問題