JQuery popup $ .post внутренняя функция не работает

0

Пожалуйста, помогите мне в моем Javascript - $.post - всплывающем скрипте. Я попытался отладить сценарий ниже, но я обнаружил, что он не входит в функцию (данные)... В чем может быть проблема? Спасибо за ответы.

Вот мой код:

$(function () {
    $('#survey').dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        width: 500,
        resizable: false,
        buttons: {
            Submit: function () {
                if ($("input[name='elso']:checked").val() !== undefined && $("input[name='masodik']:checked").val() !== undefined && $("input[name='harmadik']:checked").val() !== undefined && $("input[name='negyedik']:checked").val() !== undefined) {
                    setCookie('POPsurvey', 'POPsurvey', 30);
                    $.post("process_survey.php", $("#popup_survey").serialize(), alert("hsgh"),

                    function (data) {

                        if (data.db_check == 'fail') {
                            $("#error_message").html("<p>Adatbázisunk nem elérhető. Kérjük, próbálja meg újra.</p>");
                        } else {
                            $('#survey').dialog('close');
                            $('#survey_thanks').dialog('open');
                        }
                    }, "json");
                } else {
                    $("#error_message").html("<p>Kérjük, minden kérdésre adjon választ.</p>");
                }
            }
        }
    });
});
Теги:
post
popup

4 ответа

0
Лучший ответ

Вы можете сделать это таким образом

          $.post("process_survey.php", $("#popup_survey").serialize()).done( function (data) {

                    if (data.db_check == 'fail') {
                        $("#error_message").html("<p>Adatbázisunk nem elérhető. Kérjük, próbálja meg újra.</p>");
                    } else {
                        $('#survey').dialog('close');
                        $('#survey_thanks').dialog('open');
                    }
                });
  • 1
    спасибо за ответ .. до сих пор не идет
  • 0
    $.post("process_survey.php", $("#popup_survey").serialize()) .always(function() { alert("finished"); }) проверить, если приходит предупреждение ... если нет, то вы получаете какую-то ошибку в консоли или вызов не завершается
Показать ещё 6 комментариев
0

Проблема заключается в вашей сериализации, добавьте это в свой код и используйте serializeObject (не сериализуйте)

$.fn.serializeObject = function(){
var o = {};
var a = this.serializeArray();
$.each(a, function() {
    if (o[this.name]) {
        if (!o[this.name].push) {
            o[this.name] = [o[this.name]];
        }
        o[this.name].push(this.value || '');
    } else {
        o[this.name] = this.value || '';
    }
});
return o;

};

  • 0
    Я добавил это в свой код и использовал $ ("# popup_survey"). SerializeObject (). Он не работает и не обновляет мою форму - показывает данные, выбранные до, даже после обновления страницы.
0

Удалите это предупреждение в качестве третьего параметра в функции post, как это

$.post("process_survey.php", $("#popup_survey").serialize(),
 function (data) {
  if (data.db_check == 'fail') {
    $("#error_message").html("<p>Adatbázisunk nem elérhető. Kérjük, próbálja meg újra.</p>");
  } else {
    $('#survey').dialog('close');
    $('#survey_thanks').dialog('open');
  }
 }, "json");
0
$(function () {
$('#survey').dialog({
    bgiframe: true,
    autoOpen: false,
    modal: true,
    width: 500,
    resizable: false,
    buttons: {
        Submit: function () {
            if ($("input[name='elso']:checked").val() !== undefined && $("input[name='masodik']:checked").val() !== undefined && $("input[name='harmadik']:checked").val() !== undefined && $("input[name='negyedik']:checked").val() !== undefined) {
                setCookie('POPsurvey', 'POPsurvey', 30);
                $.post("process_survey.php", $("#popup_survey").serialize(), 

                function (data) {

                    if (data.db_check == 'fail') {
                        $("#error_message").html("<p>Adatbázisunk nem elérhető. Kérjük, próbálja meg újra.</p>");
                    } else {
                        $('#survey').dialog('close');
                        $('#survey_thanks').dialog('open');
                    }
                }, "json");
            } else {
                $("#error_message").html("<p>Kérjük, minden kérdésre adjon választ.</p>");
            }
        }
    }
});

});

функция (данные) должна быть после сериализации

  • 0
    да, это было раньше ... я сделал предупреждение для тестирования. Все еще не работает без предупреждения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню