我希望我的表单显示错误,例如"输入名字"如果该字段尚未填写。我必须使用正确的代码(我认为)来执行此操作,但它在首次加载页面时显示错误。我希望在提交表单时显示它。
<div class="Row">
<div class="Lable">First Name:</div> <!--End of Lable-->
<div class="input">
<input type="text" id="firstname" class="detail" name="firstname" placeholder="First Name" />
</div> <!--End input-->
</div> <!--End row-->
<span class="error">* <?php echo $nameErr;?></span>
PHP验证是
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["firstname"])) {
$nameErr = "Name is required";
} else {
$firstname = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$firstname)) {
$nameErr = "Only letters and white space allowed";
}
}
由于
答案 0 :(得分:1)
我会用 PHP 和 JavaScript
仔细检查表单对于javascript部分,将此行添加到表单中,因此函数validate()
将在表单内容发送到服务器之前运行。
<form onsubmit="validate()">
然后你可以像这样在你的文档中添加一个javascipt函数:
function validate() {
if (/*check if fields are filled out properly*/) {
this.submit();
} else {
// show message here when fields are missing
return false; // this line is important otherwise the form gets submitted anyway
}
}
对于PHP部分,用isset()
这看起来像这样:
$formOK = true;
if (!isset($_POST["field-name-1"]) || $_POST["field-name-1"] == "") {
echo "field-1 is missing";
$formOK = false
}
if (!isset($_POST["field-name-2"]) || $_POST["field-name-2"] == "") {
echo "field-2 is missing";
$formOK = false
}
if (formOK) {
echo "everything is fine";
// do something with your form data
}
仔细检查绝对是最好的方法,因为首先你没有这么多的请求,javascript在反应和速度方面更灵活,但PHP会为你提供保证不会出错。
答案 1 :(得分:0)
试试:
if (isset($nameErr)) {
echo '<span class="error">* ' . $nameErr . '</span>';
}
答案 2 :(得分:0)
为了仅在提交表单时应用验证,您可以检查是否以这种方式收到$_POST['submit']
:
<?php
$nameError="";
if(isset($_POST['submit']))
{
//validate the form
if(condition is not met){ $nameError="your error message"; }
}
?>
<form>
...
<input type="text" name="firstname"/>
<input type="submit" name="submit"/>
<span class="myError">* <?=$nameError?> </span>
</form>
此处,提交按钮将发送$_POST['submit']
。开头的错误消息为空。如果有错误,请更改它。然后<?=$nameError?>
将显示它是否为空。