Php 表单字段,错误发生时输入数据保持不变

Php 表单字段,错误发生时输入数据保持不变,php,forms,Php,Forms,如何在PHP表单中发生错误时使已键入的数据不消失 示例:如果我键入的名称和地址正确,但我在电子邮件中出错,并且出现错误,我希望正确的字段保持不变,我如何做到这一点 <div class="elements"> <label for="name">Name :</label> <input type="text" id="name" name="name" size="50" value="<?php echo $name; ?>"

如何在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"  " />

姓名:

我认为正确的输入字段可以保存在会话中。

这称为粘性表单

您得到错误字符串是因为您的变量为空,没错。您可以简单地通过在变量前面添加at符号来使它们静音,但这不是最佳做法。您需要做的是检查该值是否存在,如果存在则显示,如果不存在则显示其他内容

我制作了一个helper函数,可以检查是否显示从$\u 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];
    }

}
事件名称

你需要给我们更多的细节,并展示你尝试了什么。我知道这个变量是空的,所以我把那个字符串归档了,但我不知道如何用@worked找到那个解决方案,谢谢你。我会尝试用函数来解决这个问题,但失败了,可能是因为我做错了,但我会尽全力使用这个解决方案,再次感谢你,小心那个“@”符号-如果你用错了,它会让你的调试变得非常困难!我会:)也许你知道在用户选择国家时如何使用带有选项值的@?这并不重要,但每次我遇到任何问题时,我都想了解更多,谢谢。如果有人遇到问题,我会解决的