我一直在使用Serialize()将复选框形式的数据与Post()传递给可以容纳多个相同类别项目的购物篮。
当我使用“提交”按钮发布它们时,它可以很好地工作,并且可以将多个值传递并显示在一个类别下。
但是,当我使用Jquery serialize()时,每个类别仅显示一个项目,而总共仅显示两个类别。这是一个阵列问题,但我无法解决。
我应该使用替代的JQuery函数来传递多维数组吗?
jQuery将直接采用多维数组,而无需序列化。
var data = { foo: 123, bar: 456, rows: [ { column1 : 'hello', column2 : 'hola', column3 : 'bonjour',. }, { column1 : 'goodbye', column2 : 'hasta luego', column3 : 'au revoir', }, ], test1:{ test2: { test3: 'baz' } } };
_Post PHP文件中的数据如下所示
Array ( [foo] => 123 [bar] => 456 [rows] => Array ( [0] => Array ( [column1] => hello [column2] => hola [column3] => bonjour ) [1] => Array ( [column1] => goodbye [column2] => hasta luego [column3] => au revoir ) ) [test1] => Array ( [test2] => Array ( [test3] => baz ) ) )
定义数据多维数组后,您的Ajax可能会像
$.ajax({ type: 'post', cache: false, url: './ajax.php', data: data });
如果您的帖子数组可能包含您不知道的字段,则可以使用以下命令轻松地在php文件中访问帖子数组
$data = file_get_contents('php://input'); $data = json_decode($data, true);