0

ローカルデータベースからいくつかの値を取得した後、ページで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); ?>;

どうか、私は何を間違っているのですか?あなたはここで完全なコードを見ることができます。

ありがとう。

4

3 に答える 3

4

json_encodejavascriptが理解できる形式でjson文字列を出力するので、基本的に以下のように修正します。

var darr = <? echo json_encode($states); ?>;  //Already readable JSON
var present = darr ; 
于 2012-06-28T07:34:04.137 に答える
2

$ .parseJSON()は、文字列をJavaScriptオブジェクトに解析します。var darrはすでにオブジェクトであり、文字列ではないため、に渡さないでください$.parseJSON()

$ .parseJSON()APIドキュメントを参照してください

于 2012-06-28T07:41:10.523 に答える
0

サーバーからクライアントにデータを取得したい場合は、ajaxリクエストを実行するのが最善の方法だと思います。

サーバーとクライアント側を混在させる必要がないため
(コードを読みやすく、理解しやすくするなど)

ここでは、jQueryでそれを行う方法の簡単な説明を取得します:https ://stackoverflow.com/a/415894/1067061

お役に立てば幸いです。

于 2012-06-28T07:41:08.590 に答える