[英]php mysqli inseting data validation
I am working on a simple PHP code to insert data to the database, and I want to show a popup message that there are empty inputs, I tried using java script function as shown below but it didn't work, when I click insert it only shows this error: Undefined index: fname, and it insert empty value in the database. 我正在研究一个简单的PHP代码以将数据插入数据库,并且我想显示一条弹出消息,提示输入为空,我尝试使用Java脚本函数,如下所示,但是当我单击插入时它没有用仅显示以下错误:未定义的索引:fname,它将在数据库中插入空值。
<script>
function validateForm() {
var x = document.forms["myForm"]["fname"].value;
if (x == "")
{
alert("Name must be filled out");
return false;
}}
</script>
<form name="myForm" action="test.php" method ="post" autocomplete="off">
<div align='center'>
<div id="main">
<br>
<b>ادخل اسمك:</b> <input type="text" name="fname" value=""><br>
</html>
<?php
if(isset($_POST['submit']) && !empty($_POST))
{
$Name = $_POST['fname'];
$SQL = "INSERT INTO userTable (user_name) VALUES ('$Name')";
if ($conn->query($SQL) === TRUE) {
header("Location: test2.php"); /* Redirect browser */
exit();
} else {
echo '<script type="text/javascript">',
'validateForm();',
'</script>';
}
$conn->close();
}
?>
Where do you use your validateForm()
function? 您在哪里使用
validateForm()
函数? I suppose you use it in a submit button with onclick
method, or something like this. 我想您可以在带有
onclick
方法或类似方法的提交按钮中使用它。 But your return false
doesn't work in function because form still send all the data. 但是您的
return false
在函数中不起作用,因为表单仍会发送所有数据。 You should add return in method like this: 您应该在以下方法中添加return :
<form name="myForm" onsubmit="return validateForm()" action="test.php" method ="post" autocomplete="off">
So your form will get return false
from function validateForm and will stop sending a form. 因此,您的表单将从validateForm函数
return false
,并将停止发送表单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.