我有: 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
答案 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