1

我有两种形式,一种是初始注册(会员),另一种是外人发帖。

两者都进入信息确认页面,并且都在 PHP 中进行了错误检查。如果您提交并且您缺少一个字段并点击 BACK,则第一个表单中的值将被保存......尽管第二个表单中的值会丢失。

是否有特定的验证,我仔细检查了 DOCTYPES 等。

关于是什么导致它工作/不工作的任何想法?

编辑:已修复,确保所有 ELEMENT 标签都正确打开/关闭/定位,并且 DOCTYPES 在验证失败时返回信息。

4

2 回答 2

3

我以前遇到过这个问题,你必须确保你所有的 HTML 元素都正确关闭。例如,(在末尾添加斜杠)、for
等。确保 DIV 的打开和关闭不会与其他 DIV 重叠,这应该可以解决问题。

没什么太疯狂的

于 2012-10-30T15:24:32.160 回答
0

这可能与浏览器有关。通常,当您返回时,浏览器会保留表单的数据。但是,如果您提交另一个表单,该数据就会丢失。唯一的方法是每次都提交两个表单,或者使用 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?>" />
于 2012-10-30T15:01:29.963 回答