我有两种形式,一种是初始注册(会员),另一种是外人发帖。
两者都进入信息确认页面,并且都在 PHP 中进行了错误检查。如果您提交并且您缺少一个字段并点击 BACK,则第一个表单中的值将被保存......尽管第二个表单中的值会丢失。
是否有特定的验证,我仔细检查了 DOCTYPES 等。
关于是什么导致它工作/不工作的任何想法?
编辑:已修复,确保所有 ELEMENT 标签都正确打开/关闭/定位,并且 DOCTYPES 在验证失败时返回信息。
我以前遇到过这个问题,你必须确保你所有的 HTML 元素都正确关闭。例如,(在末尾添加斜杠)、for
等。确保 DIV 的打开和关闭不会与其他 DIV 重叠,这应该可以解决问题。
没什么太疯狂的
这可能与浏览器有关。通常,当您返回时,浏览器会保留表单的数据。但是,如果您提交另一个表单,该数据就会丢失。唯一的方法是每次都提交两个表单,或者使用 javascript 并将数据保存在 php 会话中。
使用 jquery(例如),您会说每次更改输入时,都会使用 AJAX 将整个表单发送到 PHP 会话。加载表单时,然后从会话全局变量加载值。
$('#myform input').change(function(){
var formdata = $('form#myform').serialize();
$.ajax({
type: "POST",
url: "process.php",
data: formdata
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
在 php 方面:
$_SESSION['form_cache']['form_name'] = parse_str($_POST['data']);
然后当你加载你的表格
<?php
$test = isset($_SESSION['form_cache']['form_name']['test']) ? $_SESSION['form_cache']['form_name']['test'] : '';
?>
<input type="text" name="test" value="<?=$test?>" />