我有类似的东西:
<form id="incomes" method="post" action="#">
<input type="text" name="date[]"/>
<input type="text" name="income[]"/>
<input type="text" name="tax[]"/>
<input type="text" name="social_insurance[]"/>
<input type="text" name="health_insurance[]"/>
</form>
我想做的就是通过jQuery ajax将这些输入发布到php结构中:
Array(
[0] => Array(
date => 2012-12-10
income => 1000
tax => 100
social_insurance => 50
health_insurance => 50
)
[1] Array(
date => 2012-12-15
income => 2000
tax => 150
social_insurance => 20
health_insurance => 50
)
)
有没有简单的方法来实现这一目标?我听说过serialize()函数,但这不是我想要的......
答案 0 :(得分:1)
我自己一直这样做但是我在PHP端循环遍历一个数组:
$newarray = array();
foreach($_POST["date"] AS $i => $date) {
$newarray[$i]["date"] = $date;
}
依旧......
因此,您可以继续通过ajax发送数据并在服务器端执行所有操作,在处理和输出结果之前,您可以对数组进行排序和执行任何操作
答案 1 :(得分:0)
使用jQuery serialize()
发送表单数据是发送数据的最简单方法。您需要遍历php中的各个字段数组以创建所需的数组结构
$('#incomes').submit(function(){
$.post(url, $(this).seralize(), function(response){
/*run any ajax complete code here*/
}) ;
/* prevent browser default form submit*/
return false;
});
$ _ POST将如下所示:
array(
date=> array(),
income=>array()/* etc*/
}
PHP new array Loop看起来像:
$newArray=array();
foreach($_POST as $key=>$value){
if( !empty( $value) && is_array($value)){
for( $i=0;$i<count($value);$i++){
$newArray[$i][$key]=$value[$i];
}
}
}