使用 Django 和 jquery 进行 Ajax 发布
我对所有 django、ajax 都是新手。我在网上阅读了一些教程,我正在尝试制作一个简单的表单,通过 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",{})
好吧,当我发布某些内容时,它返回 iEventSave.html 而不是给出“ok”消息。 有什么建议吗,我哪一部分失败了?
I'm new to all django, ajax things .. I read some tutorials on the net and I'm trying to make a simple form which posts some information via ajax.
Here is jquery part of my template :
<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);
}
});
});
And the view code :
def iEventAjax(request):
if request.is_ajax():
return HttpResponse("ok")
else:
return render_to_response("iEventSave.html",{})
Well, when i post something, it returns iEventSave.html instead of giving the "ok" message.
Any suggestions, which part do I fail ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这段代码发生了什么:
提交
返回“ok”的响应
返回模板,因为它是
GET 请求,而不是 AJAX
在 jQuery 中,您需要从提交函数返回 false,或者在事件 jQuery Submit 上调用 PreventDefault文档
所以:
What is happening with this code:
submit
response which returns "ok"
returns the template because it is a
GET request, not AJAX
In jQuery you need to either return false from the submit function, or call preventDefault on the event jQuery Submit Docs
So:
您想要执行
var data = name.serialize();
来创建查询字符串参数。You want to do
var data = name.serialize();
to create a query-string parameter.