使用jQuery和json_encode将PHP数组转换为JS数组

我只是想将我的PHP数组转换为JS数组,我在这里做错了什么?

PHP:

// get all the usernames $login_arr = array(); $sql = "SELECT agent_login FROM agents"; $result = mysql_query($sql); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { array_push($login_arr, $row["agent_login"]); } $js_login_arr = json_encode($login_arr); print $js_login_arr; // ["paulyoung","stevefosset","scottvanderlee"] 

JS:

 var login_arr = ""; alert(login_arr); // acn't even get the string in?? var obj = jQuery.parseJSON(login_arr); 

从您的javascript中删除嵌入式PHP中的引号。 符号是一个数组文字,不需要引用(假设js_login_arr之后的PHP注释是打印到javascript中的内容)。

一种简单的方法是通过分隔。 拿你的数组(不要使用关联数组,除非你需要字段名称),将它内爆成一个字符串,该字符串由一些不应该使用的字符分隔,比如说%或者什么,然后在JS中爆炸那个字符,瞧,你有你的arrays。 当一个简单的解决方案可以解决问题时,您不需要总是使用JSON或XML等forms。

如果你想将php数组转换成JSON,你必须这样做,如果$phpArray实际上是一个数组。

  var jsJSON = echo json_encode($phpArray) 

如果你只想回显并转向JSON,你必须像字符串一样给它:

  $phpArray = '{'.$key1.':'.$val1','.$key2':'.$val2.'}'; 

这肯定会起作用。