将表单数据发布到新页面并显示包含已发布数据的页面

时间:2012-03-03 17:27:06

标签: php jquery

我有: form.php的 preview.php

form.php中有一个表单,其中包含许多动态创建的表单对象。我在提交之前使用jquery.validation插件来验证表单。 提交处理程序:

submitHandler: function() {
             var formData = $("#myForm").serialize();
            $.post("preview.php", {data: formData },function() {
    window.location.href = 'preview.php';
});

问题: - 如何将当前页面更改为preview.php并显示数据?我的submitHandler不起作用?有小费吗?

preview.php:

$results = $_POST['data'];
        $perfs = explode("&", $results);
        foreach($perfs as $perf) {
            $perf_key_values = explode("=", $perf);
           $key = urldecode($perf_key_values[0]);
           $values = urldecode($perf_key_values[1]);
        }
        echo $key, $values;
    enter code here

3 个答案:

答案 0 :(得分:0)

只需提交没有ajax的表单,并确保表单的action为“preview.php”

编辑:要在验证插件中执行此操作,只需删除上面显示的submitHandler选项即可。如果您想要覆盖正常的浏览器表单提交,则使用此选项,您现在不想这样做。

用你的ajax提交,然后尝试转到页面....它是2页请求,没有自动重定向的表单,使用javascript重定向页面加载时没有可用的数据

答案 1 :(得分:0)

您甚至可以简单地添加表单上的onsubmit,并在函数中使用验证检查。如果一切顺利,最后返回真实状态,否则返回false以阻止它被提交。

例如:

<form name="Iran" method="POST" action="preview.php" onsubmit="return alex90()">
</form>

并使用此脚本:

<script language="javascript">
function alex90()
{
// use whatever validation you want
if(form == valid){
return true;
}else{
alert("Something's wrong folk!");
return false;
}
}
</script>

答案 2 :(得分:0)

我设法解决了我的问题。没有会议。

添加到表单:

 <form action="preview.php" onsubmit="return submitForPreview()">
 <input type="hidden" name="serial" id="serial" value="test">

JS:

function submitForPreview()
{
    if($("#form").valid()){
        $('#serial').val($("#newAdForm").serialize());
        return true;
    }else{
        return false;
    }

}

preview.php

echo $_POST['serial']; 
//Which shows the serialized string. YEEEEYYY :D 

感谢民间帮助:D