我有一个HTML页面,其中包含一个形式,我想,当表单成功submited,显示下面的div:提交一个表单的jQuery功能
<div class="response" style="display: none;">
<p>you can download it<a href="{{ link }}">here</a></p>
</div>
我也有一个jQuery函数:
<script type="text/javascript">
$(function() {
$('#sendButton').click(function(e) {
e.preventDefault();
var temp = $("#backupSubmit").serialize();
validateForm();
$.ajax({
type: "POST",
data: temp,
url: 'backup/',
success: function(data) {
$(".response").show();
}
});
});
});
</script>
和我的views.py
(后面的代码)我创建一个链接并将其传递给html页面。我有:
def backup(request):
if request.is_ajax():
if request.method=='POST':
//create a link that user can download a file from it. (link)
variables = RequestContext(request,{'link':link})
return render_to_response('backup.html',variables)
else:
return render_to_response('backup.html')
else:
return render_to_response("show.html", {
'str': "bad Request! :(",
}, context_instance=RequestContext(request))
backup = login_required(backup)
我的问题:似乎我的看法不执行。它不会显示我发送到此页面的链接。似乎只有jQuery功能被执行。我很困惑。我怎么能让他们两个执行(我的意思是jQuery功能,然后我设置在这个功能,这使我的看法执行的网址。)
我不知道如何使用序列化功能。每当我搜索,他们写道:
的.serialize()方法创建在标准URL编码符号的文本串,并且产生的查询字符串,如“a = 1时& B = 2 & C = 3 & d = 4 & E = 5。
我不知道什么时候我不得不使用它,而我可以在request.Post访问我的表单字段[“字段名”]。我不知道是什么应该是成功的数据:功能(数据)在我的情况下。
非常感谢fo你的帮助。
等待队友..我有点困惑你的答案... XD的事情是:当你提交你点击你的'sendButton',你通过你的函数在views.py中收到一个Ajax请求。所以,在这个函数中,你必须生成你的链接并渲染它(没有模板:只是“打印”链接)。一旦它被渲染,这个呈现的信息(=你的链接)将作为'data'(成功函数中的变量)发送。然后将这个新生成的链接添加到您的DIV,然后就可以了。我不确定我是否清楚:S ...告诉我,如果我错了,或者如果它不是你真正想要的。 – Littm
非常感谢。正如你所说的数据是来自服务器的响应,我从views.py收到。你是什么意思“t = Template(”{{link}}“) c = Context({”link“:link}) t.render(c):”?我发送链接数据到我的HTML页面通过render_to_response,我的问题是我不知道在哪里接收它在html页面?你能告诉我在哪里可以创建数据(使用链接)在HTML中。如果数据应该是从视图中收到的“链接数据”,那么什么是“数据:温度”?为什么我应该使用“数据:温度”?总是需要使用序列化?对不起,这是我第一次使用这个函数:“>谢谢你的帮助:) – user1597122
aha,你的意思是说,只要我传递一个字典到我的模板(html文件),(这是我的例子中的链接),参数“数据”自动包含链接,如果我发送到字典(链接和s.th其他),“数据”包含两个? – user1597122