я могу отправить сериализованные данные вместе с другими переменными через JQuery $ .post? - PullRequest
3 голосов
/ 03 июня 2011

Допустим, я хотел по сути сделать это:

$.post(
    'search_item.php', 
    { 
        serialzed_data, 
        save: form.save.value, 
        is_correct: form.is_correct.value , 
        etc...
    }
)

Какой правильный синтаксис для этого?

большое спасибо,

РЕДАКТИРОВАТЬ чтобы указать:

Допустим, у меня есть это:

$.post(
    'search_item.php', 
    { 
        'checks':post_data, 
        'option[]':option, 
        save: form.save.value, 
        item: form.item.value, 
        name: form.i_name.value, 
        desc: form.i_desc.value, 
        text: form.i_text.value 
    },
    function(output)    {
        $('#return2').html(output).show();
    });

теперь с этим текущим .post Я хочу добавить это к нему и опубликовать их вместе:

var serialized_data = $('input[name^="checks"]:checked').serialize();

я могу это сделать?

РЕДАКТИРОВАТЬ последняя попытка:

var post_data = $('input[name^="checks"]:checked').serialize();

        var data = $.extend({}, post_data, {
        'option[]':option, save: form.save.value, 
        item: form.item.value, 
        name: form.i_name.value, 
        desc: form.i_desc.value, 
        text: form.i_text.value
        });

        $.post('search_item.php', data ,
        function(output)    {
            $('#return2').html(output).show();
        });

Ответы [ 4 ]

4 голосов
/ 03 июня 2011

Предполагая, что serialzed_data является объектом ключа -> свойства значения, используйте jQuery.extend () , например

var data = $.extend({}, serialzed_data, {
    save: form.save.value,
    is_correct: form.is_correct.value,
    // etc
});

$.post('search_item.php', data, ...
1 голос
/ 26 июля 2011
data: {
    'formData'         : $("#someForm").serialize(),
    'anotherParameter' : 'someOtherData',
     and so on .... 
},
1 голос
/ 03 июня 2011

Вместо этого вы хотите использовать serializeArray (.serialize превращает элементы в строку, а не в массив), например так:

$.post('search_item.php', {
        serializedData: $('input[name^="checks"]:checked').serializeArray(),
        extraVar: value
    },
    function(output)    {
        $('#return2').html(output).show();
    });

serializedData будет массивом, а не словарь, так что вам придется разобрать его на другом конце.

На самом деле ... .serialize тоже будет работать нормально.Если вы используете PHP на бэкэнде, вам просто нужно пропустить его через parse_str .

или вы можете создать реальный объект из пар ключ / значение и использовать решение Фила используя это .

0 голосов
/ 12 марта 2013

Я попробовал метод Чакара, и он прекрасно работает.Используйте parse_str () в файле php, чтобы получить сериализованные данные, которые передаются из jquery в массив

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