我需要在注册页面上提供帮助。我警告用户看到所有字段都是必需的。我的问题是每次我在警报上单击确定它重定向到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>";
}
我希望有人可以帮助我。非常感谢你。
答案 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>