Jquery 像php print\r这样的多维数组结构
我已经形成了这样的形式:Jquery 像php print\r这样的多维数组结构,jquery,ajax,multidimensional-array,Jquery,Ajax,Multidimensional Array,我已经形成了这样的形式: 我只想通过jQuery ajax将这些输入以如下结构发布到php: Array( [0] => Array( date => 2012-12-10 income => 1000 tax => 100 social_insurance => 50 health_insurance => 50 ) [1] Array(
我只想通过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()函数,但这不是我想要的 我一直都是自己做的,但我是在PHP端通过数组循环做的:
$newarray = array();
foreach($_POST["date"] AS $i => $date) {
$newarray[$i]["date"] = $date;
}
等等
因此,您可以继续通过ajax发送数据,并在服务器端执行所有操作,在处理和输出结果之前,您可以对数组进行排序和执行任何需要的操作。使用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;
});
$\发布内容将类似于:
array(
date=> array(),
income=>array()/* etc*/
}
PHP新的数组循环可能类似于:
$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];
}
}
}
$newArray=array();
foreach($\发布为$key=>$value){
if(!empty($value)&&is_数组($value)){
对于($i=0;$iYeah,这是对的,但我们误解了。我不想让$_帖子看起来像是你发给我的。每个字段(例如日期、收入、税收)都应该与索引(如我在第一篇帖子中发送的结构)连接起来。编辑:对不起,伙计……刚刚恢复了我的感觉……你是对的。这应该可以解决问题(关于foreach循环).看最后一个循环…你必须在某个地方重新构造数据..在php中最容易做到,但可以在javascriptI中做到这一点:(“#选择器).map(function(){return$(this.val();}).get();这将返回charlietfl所说的结构,而不使用serialize()。在php中,我会处理它。该映射不会创建键/值…必须创建一个包含数组和代码的javascript对象,使用我给你的php循环同样容易完成。我使用映射函数完成了它,它确实创建了键和值,我的意思是它看起来像:[date]=>Array([0]=>2012-12-04[1]=>2012-12-06)[income=>阵列([0]=>5000[1]=>2500)