我用一个表单和一些 PHP/JavaScript 代码制作了一个基本示例。我正在使用 JavaScript 验证表单,并使用 PHP 只是为了更新 MySQL 表。
function checkForm(){
var x = document.forms['form1']['first'].value;
if(x=='' || x==null){
alert('please finish all required fields');
return false;
}
var y = document.forms['form1']['last'].value;
if(y=='' || y==null){
alert('please finish all required fields');
return false;
}
var z = document.forms['form1']['email'].value;
if(z=='' || z==null){
alert('please finish all required fields');
return false;
}
var a = document.forms['form1']['phone'].value;
if(a=='' || a==null){
alert('please finish all required fields');
return false;
}
}
</script>
</head>
<body>
<?php
$connect = mysqli_connect('localhost','colin','-koolio-','knoxprograms');
if(mysqli_connect_errno()){
echo "Error " . mysqli_connect_error();
}
$first = mysqli_real_escape_string($connect, $_POST['first']);
$last = mysqli_real_escape_string($connect, $_POST['last']);
$email = mysqli_real_escape_string($connect, $_POST['email']);
$phone = mysqli_real_escape_string($connect, $_POST['phone']);
$sql = "insert into users(firstName, lastName, email, phone) VALUES('$first','$last','$email','$phone');";
mysqli_multi_query($connect, $sql);
?>
<form name="form1" method="post" action="fuckwithpage.php" onsubmit="return checkForm()">
First name: <input type="text" name="first"><br>
Last Name: <input type="text" name="last"><br>
email: <input type="text" name="email"><br>
phone: <input type="text" name="phone"><br>
<input type="submit" value="send">
</form>
如果表单的验证函数返回 false,则提交表单(单击提交按钮)时发生的 JavaScript 验证会阻止更新我的表。但是,如果重新加载页面或加载页面时,则会将一个空行添加到我的表中。 谁能帮我解决这个问题。
最佳答案
开始你的PHP:
if ($_POST) { //[...your code, here...] }
否则,每次加载页面时,该代码块都会触发 - 因为没有任何东西告诉它“嘿,我们只是加载页面,尚未提交任何内容,所以不要执行任何操作 - ” -这就是上面的条件语句将扮演的 Angular 色。
关于javascript - 我的表在页面重新加载时更新为空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24829266/