Может ли jquery ajax post вернуть более 1 переменной? - PullRequest
0 голосов
/ 11 августа 2009

Я пытаюсь создать систему комментариев с помощью jquery и ajax, иногда мне требуется, чтобы пользователь вводил изображение с изображением капчи, когда они слишком часто публикуют сообщения.

Я использую плагин facebox для jquery с диалоговым окном типа popup,
Я запускаю это окно, чтобы открыть, когда бэкэнд-скрипт сообщает, что пользователь должен ввести капчу, затем он всплывает и загружает файл php капчи на экран.

Вот где у меня проблемы, мне нужно, чтобы окно не только открывало капчу, но и заполняло комментарий в это поле как скрытое поле формы, чтобы, если пользователь вводит правильный код капчи, затем разместит там комментарий, в противном случае они утверждают капчу, и тогда ничего не произойдет, поэтому мне нужно затем опубликовать комментарий. Кроме того, если они неправильно вводят код проверки, тогда мне нужно снова загрузить код проверки с оставшимися там комментариями, это должно быть легко, если я смогу заставить работать первую часть.

Вот мой код для этой части, кто-нибудь может помочь?

$.ajax({
    type: "POST",
    url: "process.php",
    data: args,
    cache: false,
    success: function (data) {
        // there was an error so we will show an error message
        if (data == 'error') {
            alert(data);
            //we need the user to submit a captcha to post there data
        } else if (data == 'captcha') {
            jQuery.facebox(function () {
                jQuery.facebox({
                    ajax: 'captchabox.php'
                })
            })
            //everything is all good, let post there comment
        } else {
            $('#comments').prepend(data);
            $(this).remove();
        })
    };

    // remove loading image
    $('#load').fadeOut();
}
});

1 Ответ

2 голосов
/ 11 августа 2009

Да, может, но больше зависит от того, что вы публикуете, чем от самого jQuery; то есть страница или веб-сервис, который вы используете для обработки. Вы можете вернуть сложный объект в результате вызова службы (используя JSON или XML), массивов или одного ответа.

В вашем process.php он может вернуть объект ответа, содержащий значение для успеха (true / false), причину / сообщение (строка) и любое другое количество значений, которые могут вам понадобиться. Тогда в вашем коде вы можете проверить:

if (data.Success) { /* code here */ } else { ... }

См. Следующую ссылку для возврата JSON через PHP: http://us2.php.net/manual/en/book.json.php

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