Aus*_*tin 7 python django ajax jquery
这可能是基本的,但我花了两天时间,阅读了无数的教程,但我仍然无法使用它.为了让它看起来有效,我试图完成一项基本任务.我想发送一个ajax调用我的捐赠视图.我看到它成功通过但我期待我的模板也会更新为"TRUE",但它仍然是"FALSE".我很欣赏任何帮助或建议.
我的jquery ......
$.ajax({
type: "POST",
url:"/donate/",
data: {
'test': 'success',
},
success: function(){
alert('test')
},
error: function(){
alert("Error");
});
Run Code Online (Sandbox Code Playgroud)
这是我的看法......
def donate(request):
if request.is_ajax():
test = "TRUE"
if request.method == 'POST':
form = DonateForm(request.POST)
if form.is_valid():
form.save()
else:
form = DonateForm()
test = "FALSE"
return render_to_response('donate_form.html', {'form':form,'test':test}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
我的模板包括这个......
<h1>{{ test }}</h1>
Run Code Online (Sandbox Code Playgroud)
就像在这个问题的评论中提到的那样,我没有对返回的数据做任何事情.我将成功通话更新到以下内容并且有效
$.ajax({
type: "POST",
url:"/donate/",
data: {
'zip': zip,
},
success: function(data){
results = $(data).find('#results').html()
$("#id_date").replaceWith("<span>" + results + "</span >");
},
error: function(){
alert("Error");
},
Run Code Online (Sandbox Code Playgroud)
sta*_*orn 12
我认为问题在于您传递数据的位置.你用Firebug吗?POST它是检查您是否通过任何内容的绝佳工具,它通常是Web开发的绝佳工具.
这是从表单发送Ajax调用的工作示例
$("#form").submit(function(event) {
var $form = $(this),
$inputs = $form.find("input, select, button, textarea"),
serializedData = $form.serialize();
$.ajax({
url: "/donate/",
type: "post",
data: serializeData,
success: function(response) {
alert(response)
}
})
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
然后你的视图看起来像这样
if request.is_ajax() or request.method == 'POST':
form = DonateForm(data=request.POST)
if form.is_valid():
return HttpResponse("Success")
else:
return HttpResponse("Fail")
Run Code Online (Sandbox Code Playgroud)
顺便说一句,除非你真的需要$.ajax()我所有的额外内容,我建议你使用,$.post()因为它似乎更直接使用.