jQuery在将变量传递给表单时遇到问题

时间:2011-03-14 04:52:06

标签: jquery ajax forms

我正在将$.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帖子,它运行正常,所以其他所有代码都应该是正确的。

任何帮助?

2 个答案:

答案 0 :(得分:1)

你实际上是在做一个2个单独的请求,其中一个你正在做一个带有表单信息的ajax帖子,其结果可能是数据填写完毕,但是你将浏览器重定向到页面而不是发送包含请求的任何信息,因此没有数据可供显示。

您是否考虑过更改帖子并重定向以将表单操作设置为您要转到的页面并在导航时发布值?

产生效果:

<form action="coupPreview.php" method="post">
    <!-- Your Inputs Here -->
    <input type="submit" onclick="return $('#createForm').valid()" />
</form>

当然我不知道你的ajax调用的目标是什么,所以这可能完全不是你想要做的。

答案 1 :(得分:0)

也许您可以尝试在$ .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开发工具确认“数据”中的值是否正确。