Сериализация данных с использованием jQuery - PullRequest
1 голос
/ 22 сентября 2011

Я пытаюсь улучшить свой код jQuery.

Кусок кода передает данные на другую страницу PHP для обработки.

В данный момент я беру данные, отправленные из формы, и беру данные из пользовательского атрибута данных со страницы.

Вот код

// Add new comment to nit on comment.php page

$('#new_comment_form').bind('submit', function(e) {

        // Prevent default
        e.preventDefault();

        var commentNitId = $('#left_content').attr('data-nit-id');

        var commentData = 'nit_id=' + commentNitId + '&new_comment_text=' + $('textarea.new_comment').val();

        $.ajax({
            type: "POST",
            url: "ajax/addComment.php",
            data: commentData, 
            dataType: "json",
            success: function(comment_response) {

                // Code upon success

            },
            error: function() {
                            // Error
                alert("Error adding comment");
            }
        });
    });

Мне просто интересно, есть ли лучший ("точный") способ сериализации данных, готовых для отправки в форму?

С уважением,

Люк

Ответы [ 3 ]

4 голосов
/ 22 сентября 2011

Да.Если вы предоставляете объект (стандартный объект Javascript) для $.ajax в качестве опции data, jQuery будет обрабатывать сериализацию за вас.внутренне это jQuery.param.Итак:

jQuery.param({
    nit_id: 5,
    new_comment_text: 'foobar'
});
// output: "nit_id=5&new_comment_text=foobar"

Обратите внимание, что в этом случае добавлен бонус побега персонажей в случае необходимости.

0 голосов
/ 22 сентября 2011
$.ajax({
            dataType: 'json',
            type:'post', 
            url: "ajax/addComment.php",
            data:$(this).parents('form:first').serialize(),
                            success: function (comment_response) {

                                     // Code upon success
                                 },
                            error: function () {
                                       // Error
                                alert("Error adding comment");
                             },
        }); 
0 голосов
/ 22 сентября 2011

Пожалуйста, посмотрите на функции jquery serialize () и serializeArray ().Они обеспечивают аккуратный способ получения данных формы.

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