将此数据库结果传递给javascript函数的正确方法是什么?

时间:2011-08-01 18:29:31

标签: php javascript jquery mysql

我从"title"字段抓取一个字符串并将其传递给addText javascript函数。 我无法正常传递字符串。此--->

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

 echo "<div id ='link' onclick = 'addText("$row['title']");'>" . $row['title'] ."</div>";

}

产生语法错误。 Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'

感谢您的帮助!

4 个答案:

答案 0 :(得分:4)

echo "<div id ='link' onclick = 'addText(\"".$row['title']."\");'>" . $row['title'] ."</div>";

答案 1 :(得分:2)

您的错误来自于您没有在所有位置正确地将静态字符串连接到变量。

echo "<div id ='link' onclick = 'addText("$row['title']");'>" . $row['title'] ."</div>";

应该是

echo '<div id="link" onclick="addText( \'' . $row['title'] . '\' );">' . $row['title'] . '</div>';

此外,由于{id}在HTML attr中使用,因此应该有权避免引用冲突:

$row['title']

对于最干净的代码,我会使用echo '<div id="link" onclick="addText( \'' .htmlentities( $row['title'], ENT_QUOTES ) . '\' );">' . $row['title'] . '</div>';

printf()

答案 2 :(得分:0)

试试这个:

echo '<div id="link" onclick="addText(\''.$row['title'].'\')">'.$row['title'].'</div>';

;

之后您不需要addText()

答案 3 :(得分:0)

使用json_encode传递您的标题。这将对其进行编码,以防您在其中包含单引号或双引号(或任何其他错误字符)。

此外,您的错误来自变量本身。由于您使用的是双引号,请使用大括号包装变量:

addText('{$row['title']}');