проверка данных вставки php mysqli - PullRequest
0 голосов
/ 03 июля 2018

Я работаю над простым 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();
}
?> 

1 Ответ

0 голосов
/ 03 июля 2018

Где вы используете функцию validateForm()? Я полагаю, вы используете его в кнопке отправки с onclick методом, или что-то вроде этого. Но ваш return false не работает в функции, потому что форма все еще отправляет все данные. Вы должны добавить return в методе, подобном этому:

<form name="myForm" onsubmit="return validateForm()" action="test.php" method ="post"  autocomplete="off">

Таким образом, ваша форма получит return false от функции validateForm и прекратит отправку формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...