我可以通过JQuery $ .post发送序列化数据和其他变量吗?
所以我想说我想基本上这样做:
$.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(); });
您想要使用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的解决方案一起使用 。
假设serialzed_data
是key – > value属性的对象,请使用jQuery.extend() ,例如
var data = $.extend({}, serialzed_data, { save: form.save.value, is_correct: form.is_correct.value, // etc }); $.post('search_item.php', data, ...
data: { 'formData' : $("#someForm").serialize(), 'anotherParameter' : 'someOtherData', and so on .... },
我尝试了cakar的方法,它的工作非常精彩。 在php文件中使用parse_str()来获取从jquery传递到数组的序列化数据