我将$.post()
与jQuery一起使用,以便将一些变量传递给表单。第一个表单用于信息输入,它发布到的页面是一个“预览”页面,在适当的设置中包含该信息。我使用$_REQUEST
来获取变量,但它似乎不起作用。当页面重定向时,没有填充任何变量。
下面是我使用的jQuery:
$('#createEnter').live('click',function() {
if($("#createForm").valid())
{
$.post('coupPreview.php', $('#createForm').serialize(), function(){
window.location.replace("../coupPreview");
});
}
});
然后我发布到coupPreview.php,并重定向到那里,所以理论上我应该看到所有的变量,但我总是什么也看不到,就好像没有传递任何变量一样。这是我之前的一篇纯PHP/HTML文章,它工作得很好,所以所有其他代码都应该是正确的。
有什么帮助吗?
发布于 2011-03-14 04:55:45
您实际上发出了两个不同的请求,其中一个请求使用表单信息执行ajax post。它的结果可能已经填充了数据,但随后您将浏览器重定向到页面,并且不随请求发送任何信息,因此没有数据可供显示。
您是否考虑过只需更改您的post和重定向,使您的表单操作成为您想要转到的页面,并在您导航时发布值?
对…有影响的事物:
<form action="coupPreview.php" method="post">
<!-- Your Inputs Here -->
<input type="submit" onclick="return $('#createForm').valid()" />
</form>
当然,我不知道ajax调用的目的是什么,所以这可能根本不是您想要做的。
发布于 2011-03-14 05:24:04
也许您可以尝试在$.post期间回显$_REQUEST值,然后在重定向之前向其发出警报,以确保其正常工作:
$('#createEnter').live('click',function() {
if($("#createForm").valid())
{
$.post('coupPreview.php', $('#createForm').serialize(), function(data){
alert(data);
window.location.replace("../coupPreview");
});
}
});
此外,您可以尝试:
var data = $('#createForm').serialize();
$.post('coupPreview.php', data, function(data){...
然后使用Firebug或Chrome Dev工具确认"data“中的值是否正确。
https://stackoverflow.com/questions/5294871
复制相似问题