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_encode,以便 JavaScript 可以看到有效的字符串。

data顺便说一句,您的示例函数在其签名中缺少参数。

于 2013-02-07T21:33:25.850 回答
0

我认为问题在于您没有在函数签名中指定参数。这可以解决问题:

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

您需要表的字段名称。

json_encode($row['fieldname'])
于 2013-02-07T21:31:07.350 回答