警报后它将保持在同一页面上

时间:2017-04-28 12:02:57

标签: javascript php alert

我需要在注册页面上提供帮助。我警告用户看到所有字段都是必需的。我的问题是每次我在警报上单击确定它重定向到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>";


}

我希望有人可以帮助我。非常感谢你。

7 个答案:

答案 0 :(得分:2)

在表单中,尝试添加required属性。例如;

<input type="text" placeholder="Username" name="username" required/>

这会阻止用户提交空值。

此外,alert()不会阻止它们,因为它只显示信息而不做任何其他事情

答案 1 :(得分:1)

请在signupMysql.php

中的echo之后再添加一条语句
header("location:signup.php");

如果您严格要求通过PHP完成验证,那么您可以使用此代码。此外,如果您希望在表单实际提交之前完成,您可以使用Douglas Hosea提供的代码。

希望它有所帮助!一切顺利!

答案 2 :(得分:1)

您的问题是您的表单正在提交,您将被带到下一页进行验证。如果您不希望用户在表单未完成时离开页面,则需要使用JavaScript和/或HTML5在浏览器中进行一些表单验证。

您可以停止使用JavaScript提交表单:How to prevent form from being submitted?

或者您可以查看HTML5表单验证和“必需”属性:Required attribute HTML5 https://www.w3schools.com/tags/att_input_required.asp

答案 3 :(得分:1)

我认为你需要这样的东西:

@Autowired
private ApplicationContext applicationContext;

private Widget getWidget(String name){
    Widget widget = applicationContext.getBean(Widget.class);
    widget.setName(name);
    return widget;
}

的javascript代码:

<form class="register-form" id="myform" action="signupMysql.php" method="post">
...
  <input type="button"  onclick="subme()" value="Submit Form">
</form>

答案 4 :(得分:1)

尝试下面的代码,你想要的。

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>";
}?>

答案 5 :(得分:1)

您可以在发布到服务器之前验证表单。

表单“提交”事件可以通过javascript处理(你可以谷歌如何用jquery做)

这里是没有任何libs的解决方案(在表单后面添加此代码):

<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()会阻止您的表单发布

答案 6 :(得分:0)

使用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>