表单字段,输入数据在发生错误时保留

时间:2014-04-18 23:08:04

标签: php forms

如果PHP表单中发生错误,如何使已输入的数据不会消失。

示例:如果我正确输入名称和地址但是我错误地使用了电子邮件并且发生错误我希望正确的字段保持不变,我是怎么做到的?

 <div class="elements">
  <label for="name">Name :</label>
  <input type="text" id="name" name="name" size="50" value="<?php echo $name; ?>" />
</div>
<div class="elements">
  <label for="e-mail">E-mail :</label>
<input type="text" id="e-mail" name="e-mail" size="50"  value="<?php echo $email; ?>"/>
</div>
<div class="elements">
  <label for="Password">Password:</label>
  <input type="password" id="Password" name="Password" size="50" />
</div><input type="text" id="name" name="name" size="50"  " />

我试过回声但是当第一次加载页面时,在表单字段中可以看到类似的内容
注意:未定义的变量: C:\ xampp \ htdocs中的名称在线 173

2 个答案:

答案 0 :(得分:0)

我认为对于正确的输入字段,您可以将它们保存在会话中。

答案 1 :(得分:0)

这称为粘性表格。

您收到错误字符串,因为您的变量为空,这是正确的。您可以通过在变量前面添加一个符号来使它们静音,但这不是最佳实践。您需要做的是检查值是否存在,如果是,则显示,否则显示其他内容。

我做了一个帮助函数,可以检查是否显示来自$ _POST的内容或默认值。输入

event name<br />
<input type="text" 
       style="width:100%" 
       name="title" 
       value="<?=stickyRow($_POST,'title','')?>" />


function stickyRow($array,$index,$default = ''){

    if(empty($array[$index]) || $array[$index] == ''){
        return $default;
    }else{
        return $array[$index];
    }

}

$ array通常是返回的$ _POST,$ _GET或$ _RESULT数组。 $ index是该输入中的键。如果这是密钥填充,它会在表单中显示,如果没有,则显示默认值。

希望这有帮助。