[英]After alert it will stay on the same page
我需要在注册页面上获得帮助。 我提醒用户,请注意所有字段都是必填字段。 我的问题是,每当我在警报上单击“确定”时,它就会重定向到signupMysql.php,这是一个空白页。 我想要的是,只要某些字段不完整,它就保留在signup.php上。
我认为该行为与我的问题有关。
这是我的signup.php
<form class="register-form" action="signupMysql.php" method="post">
<p class="message">Don't have an account?</p>
<input type="text" placeholder="Username" name="username">
<input type="text" placeholder="Last Name" name="lastname">
<input type="text" placeholder="First Name" name="firstname">
<input type="text" placeholder="Contact Number" name="contactnum">
<input type="text" placeholder="Email address" name="email">
<input type="password" placeholder="Password" name="password">
<input type="password" placeholder="Re-enter Password" name="repassword">
<input type="Submit" value="Sign Up">
</form>
我的signupMysql.php的一些代码
if (empty($username) || empty ($lastname) || empty($firstname) ||
empty($contactnumber) || empty($email)
|| empty ($password) || empty ($repassword)){
$message = "Fill all fields";
echo "<script type='text/javascript'>alert('$message');</script>";
}
我希望有人可以帮助我。 提前非常感谢您。
在表单中,尝试添加required
属性。 例如;
<input type="text" placeholder="Username" name="username" required/>
这将防止用户提交空值。
另外, alert()
不会停止它们,因为它仅显示信息并且不执行其他任何操作
请在signupMysql.php中的echo之后再添加一条语句
header("location:signup.php");
如果您严格希望通过PHP进行验证,则可以使用此代码。 另外,如果您希望在实际提交表单之前完成此操作,则可以使用Douglas Hosea给出的代码。
希望能帮助到你! 祝一切顺利!
您的问题是您的表单正在提交,您将被带到下一页进行验证。 如果您不希望用户在表单未完成时离开页面,则需要使用JavaScript和/或HTML5在浏览器中进行某些表单验证。
您可以使用JavaScript 阻止表单提交 : 如何防止表单提交?
或者,您可以查看HTML5表单验证和“ required”属性: 必需属性HTML5 https://www.w3schools.com/tags/att_input_required.asp
我认为您需要这样的东西:
<form class="register-form" id="myform" action="signupMysql.php" method="post">
...
<input type="button" onclick="subme()" value="Submit Form">
</form>
对于javascript代码:
function subme(){
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i += 1) {
if(inputs[i].value == ''){
alert("All field must be filled")
exit()
}
}
document.getElementById("myForm").submit()
}
尝试在下面编写所需的代码。
if (empty($username) || empty ($lastname) || empty($firstname) ||
empty($contactnumber) || empty($email)
|| empty ($password) || empty ($repassword))
{
$_SESSION['messege'] = "Fill all fields";
header("location:signup.php");
}
在您的signup.php中
<?php if(isset($_SESSION['messege']) && $_SESSION['messege'] != ''){
echo "<script type='text/javascript'>alert('$_SESSION['messege']');</script>";
}?>
您可以先验证表单,然后再发布到服务器。
表单“提交”事件可以由javascript处理(您可以通过google搜索如何使用jquery)
这是没有任何库的解决方案(在表单之后添加此代码):
<script>
document.getElementsByTagName('form')[0].addEventListener('submit', function(evt){
if(document.getElementsByName("email")[0].value == "") {
alert("You forgot to enter email!");
evt.preventDefault();
}
/// .... put other checks here
})
</script>
注意:evt.preventDefault()将阻止您的表单发布
除非未经验证,否则使用retrun false
保留在同一页面上
JavasScript:
<script>
function validation() {
var isValid = true;
//perform your validation on form and update isValid variable accordingly.
if(isValid) {
window.location = ''; // your desired location
}
return false; // always return false to prevent form from submission.
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.