【发布时间】:2013-02-10 20:55:49
【问题描述】:
我在另一个问题 (Display form validation errors next to each field) 上发现了以下代码:
<?php
$error = array(
"name" => "",
"email" => "",
"subject" => "",
"message" => ""
);
?>
<?php
if (empty($_POST["email"]))
$error["email"] = "Email is required!";
elseif (!isEmail($_POST["email"]))
$error["email"] = "Not a Valid Email!";
?>
如果没有错误,它将为空并且用户不会看到错误消息。
在您的表单代码中,您只需以这种方式更新:
<small class="errorText"><?php echo $error["name"]; ?></small>
<small class="errorText"><?php echo $error["email"]; ?></small>
在后端,$error["email"] 将具有 "This field is required" 或 "Not a valid email address!"。
我试图将它应用到我的代码中:
所以我将上面的 php 部分粘贴到 email.php 中,然后像这样更新了我的表单:
<form id="contacts-form" method="post" action="email.php" target="myiframe" >
<fieldset>
<div class="field">
<label>Your E-mail:</label>
<input type="email" name="email" value=""/>
<small class="errorText"><?php echo $error["email"]; ?></small>
</div>
...
现在我收到一条错误消息,提示 $error 未定义。请记住,我是 php/HTML 设计的新手,我正在尝试通过示例学习
谢谢
【问题讨论】:
-
您的文件中是否也包含了
$error = array(...声明? -
不,我把这个声明放在 email.php 中
-
小心,不是
if (empty()$_POST["email"]),而是if (empty($_POST["email"]))。 -
是的,对不起,我已经修复了那部分 :) 我会更新我的帖子
-
好的!另请记住,您的 if/elseif 不包括所有情况,因此当它既不是
if也不是elseif时,将有一个默认值。