php中的访问数组通过ajax传递

时间:2013-01-17 10:10:17

标签: php jquery html ajax

我试图通过Ajax将关联数组传递给php,如下所示

var arr={'a':1,'b':2,'c':3};
$.ajax({
    type:'POST',
    url:'data.php',
    data:arr,
});

在php中我想循环遍历数组的所有元素,如下所示

 $data=$_POST;
 foreach($data as $k=>$v)
 {
     echo $k.'='.$v;
 }

有人可以在这方面帮助我。

3 个答案:

答案 0 :(得分:0)

你可以通过

来做到这一点
var newarr = JSON.stringify(arr);
$.ajax({
    type:'POST',
    url:'data.php',
    data:{dat:newarr} ,
});

并在php中

$data = json_decode($_POST['dat']);
 foreach($data as $a){
     echo $a;
  }

您也可以使用serializeArray()

$.ajax({
    type:'POST',
    url:'data.php',
    data:{dat: $(arr).serializeArray()} ,
});

然后$_POST['data']将是一个数组

答案 1 :(得分:0)

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

以上示例将输出:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

From -PHP manual

答案 2 :(得分:0)

这完成了工作

data:{dat:arr}
在jquery和

$data=$_REQUEST['dat']

在php上