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

时间:2010-07-14 21:19:13

标签: php jquery arrays json

我只是想将我的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 = "<?= $js_login_arr; ?>";
alert(login_arr); // acn't even get the string in??
var obj = jQuery.parseJSON(login_arr);

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

 var jsJSON =  echo json_encode($phpArray)

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

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

这肯定会有用。