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

What's the right way to pass this database result into a javascript function?

本文关键字:函数 方法 是什么 javascript 数据库 结果      更新时间:2023-09-26

我从"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 ';'

谢谢你的帮助!

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

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

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

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

此外,由于$row['title']在HTML attr中使用,因此应该对其进行实体化以避免引号冲突:

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

试试这个:

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

addText()之后不需要;

使用json_encode传递您的标题。这将对它进行编码,以防其中有单引号或双引号(或任何其他不良字符)。

你的错误也来自变量本身。因为你使用了双引号,所以用大括号把变量括起来:

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