php数组转js数组

JavaScript016

php数组转js数组,第1张

我遇到过这个问题,后台是PHP读取数据库的数据,然后要到前端的JS去处理,这就涉及到php向JS传值的问题,这和js向php传值还不一样,我分别来说一下:

php向js传值

//现在php取出来的是一个数组

$test = array('1','2','3')

$testJson = json_encode(array)

这样,再使用js去获取就好了,代码为:

<script type="text/javascript">

var js_json = <?php echo testJson?>

</script>

对于你而言,你把键值对转化为数组进行存储,然后进行传递,再按照这个方法在js中取值看行不行,js的那个插件我不是很清楚!

js向php传值

js向php传值要用到Ajax,这个稍微复杂点,你先去学一下Ajax(w3schoool中有讲)吧

js中获取php数组的代码如下:

function ajax_test(params){

$.ajax({

url:'./php/data_read.php',

type:'post',

dataType:'html',

data:params,

error: function(){alert('error')},

success:function(products){

alert(products)

}

})

}

php中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个php数组作为值,也可以很容易地模拟树。

把对象数组转成JASON串,PHP收到后转化成JASON对象进行读取。

参考例子如下:

<script type="text/javascript" src="http://www.coding123.net/rardownload/20110420/20110420113851756.js"></script><!--倒入json.js文件,序列化json对象用的-->

<script type="text/javascript" src="http://www.coding123.net/js/jquery.js"></script>

<script type="text/javascript">

var zNodes =[

{ id:1, pId:0, name:"随意勾选 1", open:true},

{ id:11, pId:1, name:"随意勾选 1-1", open:true},

{ id:111, pId:11, name:"随意勾选 1-1-1"},

{ id:112, pId:11, name:"随意勾选 1-1-2"},

{ id:12, pId:1, name:"随意勾选 1-2", open:true},

{ id:121, pId:12, name:"随意勾选 1-2-1"},

{ id:122, pId:12, name:"随意勾选 1-2-2"},

{ id:2, pId:0, name:"随意勾选 2", checked:true, open:true},

{ id:21, pId:2, name:"随意勾选 2-1"},

{ id:22, pId:2, name:"随意勾选 2-2", open:true},

{ id:221, pId:22, name:"随意勾选 2-2-1", checked:true},

{ id:222, pId:22, name:"随意勾选 2-2-2"},

{ id:23, pId:2, name:"随意勾选 2-3"}

]

$.ajax({

url:'xxxx.php'//改为你的动态页

,type:'POST'

,data:{zNodes:zNodes.toJSONString()}//调用json.js类库将json对象转换为对应的JSON结构字符串

,success:function(rst){alert('PHP接收JSON数据成功!')}

,error:function(xhr){alert('PHP页面有错误!'+xhr.responseText)}

}})

</script>

$zNodes=$_POST["zNodes"]

$json=json_decode($zNodes)//转化为JSON对象