JQuery / AJAX формы - отправить на PHP проблемы - PullRequest
1 голос
/ 29 сентября 2010

У меня есть симпатичная форма jQuery для слайдов / слайдов.Он отправляет данные в тот же файл, чтобы отправить электронное письмо.Это прекрасно работает:

$(document).ready(function(){
    $('div.contact a.submit').click(function() {
        var name = $('div.contact input.name').val();
        var email = $('div.contact input.email').val();
        var message = $('div.contact textarea.message').val();
        $('div.contact').slideUp('slow', function() {
            $.ajax({
                type: "POST",
                url: "test.php",
                data: "name=" + name + "&email=" + email + "&message=" + message,
                success: function(msg)
                {
                    $('div.contact').html('<h1>Contact</h1><div class="comment">Success!</div><div class="clear"></div><p class="indent">Thank you, we will be in contact shortly.</p>');
                    $('div.contact').slideDown('slow');
                }//end of success
            });//end of ajax
        });
    });
});

PHP в верхней части test.php для отправки электронного письма:

include("expander-b1.0.php");
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
sendmail("admin@site.co.uk", $message, "Contact message from $name", $email);

Это моя простая функция почты из внешнего файла.Однако я хотел бы проверить способ ввода формы (включая подтверждение по электронной почте), а затем отобразить ошибки в контактном погружении.Я не настолько опытен с jQuery или ajax, но не могу заставить его работать с использованием операторов if в моем php и отображать переменные в части «success» ajax.

Ответы [ 3 ]

1 голос
/ 29 сентября 2010
$(document).ready(function(){
    $('div.contact a.submit').click(function() {
        var name = $('div.contact input.name').val();
        var email = $('div.contact input.email').val();
        var message = $('div.contact textarea.message').val();

        //Email Validation
        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        if(reg.test(email) == false) {
            alert('Invalid Email Address');
            return false;
        }
        //Name and message VALIDATION
        //-------- goes here ------------//

        $('div.contact').slideUp('slow', function() {
            $.ajax({
                type: "POST",
                url: "test.php",
                data: "name=" + name + "&email=" + email + "&message=" + message,
                success: function(msg)
                {
                    $('div.contact').html('<h1>Contact</h1><div class="comment">Success!</div><div class="clear"></div><p class="indent">Thank you, we will be in contact shortly.</p>');
                    $('div.contact').slideDown('slow');
                }//end of success
            });//end of ajax
        });
    });
});
0 голосов
/ 29 сентября 2010

http://www.position -absolute.com / статьи / JQuery форм-валидатор-потому-формы валидация-это-беспорядок /

Сценарий проверки на основе JQuery, который очень хорошо работает для проверки и автоматической вставки сообщений об ошибках, если часть вашего кода не проходит проверку. Просто включите файлы, добавьте jquery (см. Источник примеров для лучших методов) и добавьте элемент «required» к вашим именам классов. Должно быть идеальным решением вашей проблемы .... без сумасшедшей математики или отдельных селекторов.

0 голосов
/ 29 сентября 2010

вам нужно использовать mysql_real_escape (), чтобы отфильтровать злой код в сообщении, и вы можете использовать регулярное выражение для проверки правильности электронной почты. если вы заглянете в Google, вы найдете множество документации и учебных пособий по этому вопросу.

Вы также можете упростить себе задачу и купить (или найти бесплатный) готовый к использованию класс проверки -> Класс проверки Codecanyon

и об части успеха взгляните на этот вопрос -> как мне создать функцию возврата успеха?

...