我可以通过JQuery $ .post发送序列化数据和其他变量吗?

时间:2011-06-03 00:51:14

标签: jquery ajax

所以我想说我想基本上这样做:

$.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 个答案:

答案 0 :(得分:4)

假设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 :(得分:1)

您希望使用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传递它。

或者您可以创建键/值对的实际对象,并使用Phil的解using this

答案 2 :(得分:1)

data: {
    'formData'         : $("#someForm").serialize(),
    'anotherParameter' : 'someOtherData',
     and so on .... 
},

答案 3 :(得分:0)

我尝试了cakar的方法并且效果很好。在php文件中使用parse_str()来获取从jquery传递到数组的序列化数据