2012-11-01 32 views
0

構建網站以便用戶可以將主題添加到網站上,然後問問題答:使用AJAX,主頁上的「添加媒體」按鈕加載我的添加媒體表單(文本和一個圖像)到網站。該框使用正確的表單呈現正常,但點擊提交後,表單不保存在數據庫中。當只是在沒有jQuery的情況下將表單渲染到一個新的HTML頁面時,該模型工作得很好,輸入被保存。如何獲取jquery lightbox中提交的信息也保存在數據庫中?未將用戶輸入保存在使用Javascript的模型中

所以這是html頁面

#home.html 
<a href="#login-box" class="btn btn-success">Add Media</a> 
     <div id="login-box" class="addmovie-popup"> 

這是與它

#home.js 
$(document).ready(function() { 
    $('.block3 a').click(function(ev) { 
     ev.preventDefault(); 
     var url = $(this).attr('href'); 
     $('#login-box').load('http://127.0.0.1:8000/home/add_movie/'); 
    }); 
}); 

的URL的conf

#urls.py 
url(r'^add_media/$', 'add_media'), 

的觀點去添加媒體jQuery的

#views.py 
def add_media(request): 
    if request.method == "POST": 
     form = MediaForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form.save(user = request.user) 
      return HttpResponseRedirect("/home//") 
    else: 
     form = MediaForm() 
     return render_to_response("qanda/add_media.html", {'form': form}, context_instance = RequestContext(request)) 

和HTML表單,它是呈現

#add_media.html 
<h1> Add Media:</h1> 
<form enctype = "multipart/form-data" action = "" method = "post">{% csrf_token %} 
    {{ form.as_p }} 
    <input type = "submit" value = "Add" /> 
    <input type = "hidden" name = "next" value = "{{ next|escape }}" /> 
</form> 

回答

0

如果你加載HTML到您的網頁動態action = ""將指向當前頁面,這顯然不處理你的POST請求。

將操作設置爲正確的URL。

+0

所以我嘗試了action =「/ home /」,action =「/ localhost/home /」,都沒有成功。請幫忙嗎?謝謝! –

+0

我認爲正確的網址是/ add_media/ – jpic

+0

@jpic是正確的(雖然我的urlconf poitns爲/ home/add_media /),仍然正確。太好了,謝謝! –

相關問題