【发布时间】:2014-09-22 05:53:56
【问题描述】:
我有一个简单的 JavaScript 函数,如果未填写所有字段,则不允许提交表单。最重要的是,我希望 PHP 在空字段旁边写出一条错误消息。问题是函数在 $_POST 上激活,但只要其中一个字段为空,我的 JavaScript 函数就不允许出现 $_POST。
如果我将操作保留在$_POST 条件之外,则页面将加载并显示已显示的错误消息。我对 PHP 和 JavaScript 还很陌生,并且希望对可能另一个可用条件有任何见解,我可以用它来触发我的错误消息出现在我的表单中。我也愿意接受任何其他关于错误处理的建议。我确实更喜欢保留我的 JavaScript,因为如果没有正确填写它,它能够阻止提交表单。除非有其他方法可以采取该行动,否则我必须保留 JavaScript。
PHP:
function cleanCrew ($id, $pswrd) {
$id = stripslashes($id);
$pswrd = stripslashes($pswrd);
$id = strip_tags($id);
$pswrd = strip_tags($pswrd);
return array($id, $pswrd);
}
require_once 'dbServ.php';
$db_server = mysqli_connect($db_host,$db_user,$db_pass,$db_base);
if ($db_server) {
$error_1 = "";
} else{
$error_1 = "connection to database unsuccessful";
}
$error_2 = "";
$error_3 = "";
if ($_POST) {
$user_id = mysqli_real_escape_string($db_server, $_POST['userId']);
$user_pass = mysqli_real_escape_string($db_server, $_POST['pass']);
$id_and_pass = cleanCrew($user_id, $user_pass);
if ($user_id == "" || $user_id == null) {
$error_2 = "please fill in proper User Id";
} else{
$error_2 = " ";
}
if($user_pass == "" || $user_pass == null){
$error_3 = "please fill out password";
} else{
$error_3 = " ";
}
echo $id_and_pass[0];
echo $id_and_pass[1];
}
HTML:
<div id="intro">
<h1 id="the_blog" align="center">The <span id="blog_animate" style="position:relative;">Blog</span></h1>
<div id="log-in"><p id="log">Log In</p><br> <?php echo $error_1; ?>
<form action="blog.php" method="post" onsubmit="return checkForm(this)" name="form1">
<p id="log">User ID :</p> <input type="text" placeholder="johnnyApple175" name="userId"></input><?php echo $error_2 ?><br>
<p id="log">Password:</p> <input type="password" name="pass"></input><?php echo $error_3; ?><br>
<input type="submit" value="submit" class="button" ></input>
</form>
【问题讨论】:
-
你为什么不用javascript写那些错误信息(在空的表单字段旁边)?
-
要么让 php 处理空白字段,然后在表单发布后返回错误,说字段不能为空。以 if(isset($_POST['pass'])) 为例
-
我还没有研究过 HTML5 的验证。我得看一下,我想我会尝试使用 JavaScript 更改错误字段的值
标签: javascript php forms validation post