我有一个使用PHP服务器端脚本验证的表单。表格的行动也是对自己的。为了显示多个错误,我将它存储在一个数组中,并使用foreach循环遍历值并回显它以进行显示。我以为我已经完成了PHP验证,但我注意到每次提交表单时,即使它仍然包含一些错误,所有输入的值都会重置。为什么?当我使用javascript时,PHP的值仍然如此?
这是我设置错误并将数据插入db的方法。
if(isset($_POST["submit"]))
{
$lname = $_POST["lname"];
$errors = array();
if(strlen($lname) == 0)
{
$errors[] = "Last name is required";
}
if (!empty(errors))
{
//display errors using foreach loop
}
else
{
//connect and insert data to mysql db
}
}
?>
答案 0 :(得分:1)
在表单的输入元素代码中使用它就像这样
<input type="text" name="username" value="<?php if(isset($_POST['username']) echo $_POST['username'];?>">
使用isset检查值是否存在而不是回显它
答案 1 :(得分:1)
您可能在不设置默认值的情况下编写HTML表单。
<input type="text" name="firstname" />
如果出现错误,您应该设置默认值。这是一个例子。在输出之前不要忘记清理POST变量。
<input type="text" name="firstname" value="<?php echo $_POST['firstname']; ?>" />