0

クエリをmysqlデータベースに送信し、$ row = mysql_fetch_assoc($ result)を使用して行ごとに結果を取得するコードを作成しました。

各行のデータをjavascript関数に送信する必要があります。

これが私が使用したコードの一部です:

while($row = mysql_fetch_assoc($result))
{

echo '<script type="text/javascript">'.'queryResults('. json_encode($row) . ');'.'</script>';

}

私のjavascript関数には:

function queryResults(data){
var results = JSON.parse(data);}

ただし、エラーが発生します。

"SyntaxError: JSON.parse: unexpected character"

私のコードの問題はどこにありますか?

4

3 に答える 3

2

スクリプトタグ内に直接あるJSONは、JavaScriptオブジェクトリテラルとして解釈されます。実際には、オブジェクトをqueryResults関数に渡します。使用するにはJSON.parse()(必須ではありません)、JavaScriptの文字列区切り文字で囲み、によって返される文字列内のすべての引用符をエスケープして、json_encodeJavaScriptが有効な文字列を認識できるようにする必要があります。

ところで、サンプル関数のdataシグネチャにパラメータがありません。

于 2013-02-07T21:33:25.850 に答える
0

テーブルのフィールド名が必要です。

json_encode($row['fieldname'])
于 2013-02-07T21:31:07.350 に答える
0

問題は、関数のシグネチャにパラメータが指定されていないことだと思います。これで問題が解決する場合があります。

function queryResults(data){
var results = JSON.parse(data);
}
于 2013-02-07T21:33:11.447 に答える