Проверка формы Jquery и проверка значений с помощью базы данных Mysql с помощью PHP-скрипта
-
19-09-2019 - |
Вопрос
У меня есть форма, в которой есть текстовое поле ввода и кнопка отправки.
При отправке формы значение текстового поля должно быть передано php-скрипту и проверить значения, существует ли оно в базе данных Mysql.Если оно существует, то нам нужно показать окно с предупреждением о том, что "Введенное значение уже существует, попробуйте что-то новое".Если значение не существует, форма может быть отправлена php-скрипту, который находится в действии формы.
Я попробовал с помощью jquery, и код приведен ниже:
$(document).ready(function() {
$("#form_add").submit(function () {
var pval = $("#name").val();
var datastring = 'pname'+pval;
$.post("unique_valid.php", {pname:pval }, function (data){
alert('duplicate');
});
return false;
});
});
Проблема с этим кодом заключается в том, что он показывает окно предупреждения в каждом случае, но не позволяет отправить форму, если значения не существуют в базе данных.
Php - код :
$pname = $_POST['pname'];
if( $pname == $row['name']){
echo "success";
}else{
echo "failure";
}
Предложите лучшее решение этой проблемы.
Решение
Это потому, что вы предупреждаете 'duplicate' независимо от того, каков результат PHP.Попробуйте проверить значение data
перед оповещением, вот так:
$(document).ready(function() {
$("#form_add").submit(function () {
var pval = $("#name").val();
var datastring = 'pname'+pval;
$.post("unique_valid.php", {pname:pval },
function (data){
if(data == 'failure'){
alert('duplicate');
}else{
alert('not a duplicate');
}
});
return false;
});
});
И я предполагаю, что ваш PHP-код действительно сохранит запись, если это не дубликат (хотя в вашем коде это не так много указано)?