在Javascript中使用PHP中的数组值

时间:2012-06-28 07:27:37

标签: php javascript jquery json

我想从本地数据库中检索一些值后,在页面上执行javascript函数。但是,一旦PHP代码在我的javascript中,javascript函数甚至不会首先运行。如果我将PHP代码分开并单独运行PHP代码,它可以正常工作,以及javascript代码。这是我的代码:

<?
mysql_connect("127.0.0.1:3307", "username", "password") or die ("Error fetching value from database.");
mysql_select_db("ccmalumni");
$result = mysql_query("SELECT DISTINCT value FROM ccm_bp_xprofile_data WHERE field_id = 16") or die ("What da heck");
$states = db_result_array_values($result);
echo $states[0];
mysql_close();

function db_result_array_values($result) { 
for ($array = array(); $row = mysql_fetch_row($result); isset($row[1]) ? $array[$row[1]] = $row[0] : $array[] = $row[0]); 
return $array; }
?>

var present = <? echo json_encode($states); ?>;

拜托,我做错了什么?您可以看到完整代码here

感谢。

3 个答案:

答案 0 :(得分:4)

json_encode将以javascript可以理解的形式输出json字符串,所以基本上像下面一样修复;

var darr = <? echo json_encode($states); ?>;  //Already readable JSON
var present = darr ; 

答案 1 :(得分:2)

$ .parseJSON()将字符串解析为javascript对象。 var darr已经是一个对象,不是字符串,因此不应该传递给$.parseJSON()

请参阅$.parseJSON() API Docs

答案 2 :(得分:0)

如果你想从服务器到客户端获取数据,我认为最好的方法是做一个ajax请求。

因为您不必将服务器与客户端混合(使您的代码更易读,易于理解等)。

在这里,您将获得如何使用jQuery进行简短描述:https://stackoverflow.com/a/415894/1067061

希望它有所帮助,祝你好运!