我有一个页面(第1页)接受发布的请求,做一些东西并显示一些数据到最后.
从另一个页面(第2页),当点击一个按钮时,我想重定向到第1页,当然通过POST发送第1页所需的所有相关数据.
当然,我可以使用页面上隐藏形式的老黑客,填写所有使用jQuery的数据,只要用户点击按钮,然后自动提交().
但是这看起来很麻烦 – 使用类似于$.post的语法,而不是开始操纵html,这更好. $.post将是完美的,它是否实际重定向到页面,而不是异步地发出请求(在第1页需要数据显示的东西之后,我不能重定向到第1页,因为ajaxy的帖子已经完成.
有没有办法用jquery做我想要的,还是丑陋的隐形形式唯一的出路?
P.S
我知道有其他令人振奋的方式来实现我想要的,例如使用$.post,并在我们目前的页面上种植回复的html,但我只是想知道是否有一个简单的方法来做这个jquery
解决方法
这给了我一个想法,一个jQuery函数来模仿$.post行为,如你所描述的.它仍然在后台使用不可见的形式,但它的语法相对干净直接.
$(document).ready(function(){ $('#myButton').PostIt('post.PHP',{foo:'bar',abc:'def',life:42}); $('#myOtherButton').PostIt('post.PHP',dataObjectFromSomewhereElse); }); $.fn.PostIt = function(url,data){ $(this).click(function(event){ event.preventDefault(); $('body').append($('<form/>',{ id: 'jQueryPostItForm',method: 'POST',action: url })); for(var i in data){ $('#jQueryPostItForm').append($('<input/>',{ type: 'hidden',name: i,value: data[i] })); } $('#jQueryPostItForm').submit(); }); }