我从"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 ';'
感谢您的帮助!
答案 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']}');