JQuery AJAX-функция, возвращающая ноль, а не JSON - PullRequest
0 голосов
/ 06 февраля 2012

Я разрабатываю контактную форму, которая отправляется с помощью команды ajax, данные отправляются в php-файл, где они обрабатываются, и возвращается объект json, но у меня возникают некоторые проблемы с возвратом объекта json в ajax команда, поскольку она продолжает возвращать ноль, код, который я использую, выглядит следующим образом ...

$("#send").click(function () {
    var complete = true;
    $('input#name, input#email, input#subject, textarea#message').each(function () {
        if ($(this).val()) {
            $(this).css("background", "#ffffff").css("color", "#111111");
        } else {
            $(this).css("background", "#d02624").css("color", "#ffffff");
            complete = false;
        }
    });
    if (complete == true) {
        var name = $("input#name").val();
        var email = $("input#email").val();
        var subject = $("input#subject").val();
        var message = $("textarea#message").val();
        var data = '{"name":"' + name + '","sender":"' + email + '","subject":"' + subject + '","message":"' + message + '"}';
        $.ajax({
            type: "POST",
            url: "contact.php",
            data: "token=" + $.base64.encode(data),
            dataType: "json",
            success:function(response) {
        if (response) {
            var data = $.parseJSON(response);
            alert(data.response);
                if (data && data.status == "success") {
                $.fancybox.close();
            }
        }}
        });
    }
});

Вы также можете увидеть проблему вживую по адресу: http://idify.co.uk, спасибо за помощь, я не слишком хорош с javascript, я все еще учусь ...

1 Ответ

0 голосов
/ 06 февраля 2012

Изменение

        if (response) {
            var data = $.parseJSON(response);
            alert(data.response);
                if (data && data.status == "success") {
                $.fancybox.close();
            }
        }}

до

        if (response) {
            var data = response;
            alert(data.response);
                if (data && data.status == "success") {
                $.fancybox.close();
            }
        }}

или просто используйте response напрямую.

...