Проверка формы Jquery и проверка значений с помощью базы данных Mysql через PHP-скрипт

У меня есть форма с текстовым полем ввода и кнопкой отправки.

При отправке формы значение текстового поля должно быть передано 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;
        }); 
});


Проблема с этим кодом заключается в том, что он показывает окно предупреждения в каждом случае, но не позволяет отправить форму, если значения не существуют в базе данных.

Пхп код:

$pname = $_POST['pname'];
if( $pname == $row['name']){
        echo "success";
    }else{
        echo "failure";
    }

Предложите лучшее решение этой проблемы.


person Murugesh    schedule 22.07.2009    source источник


Ответы (1)


Это потому, что вы предупреждаете «дубликат» независимо от того, какой вывод 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-код действительно сохранит запись, если она не является дубликатом (хотя ваш код не указывает столько же)?

person brettkelly    schedule 22.07.2009
comment
Спасибо, я получаю предупреждающее сообщение, но форма не отправляется при предупреждении («не дубликат»). После отправки формы я сохраняю записи в базе данных с помощью php-скриптов. - person Murugesh; 23.07.2009