我试图通过javascript中的php变量插入html代码。我在下面收到以下错误。有人可以建议吗?
错误消息:"意外标识符'非活动'" ($ option有价值'无效' /'有效')
PHP
$tr_active_Options = '';
$sql1 = "SELECT status FROM tr_active";
$result = $mysqli -> query($sql1);
while($row = $result -> fetch_assoc()){
$option = $row['status'];
$option = '<div class="dpOtions" onclick="track.addChosenOption(\''.$option.'\', \'act_ui\')">'.$option.'</div>';
$tr_active_Options .= $option;
}
$tr_active = '<div class="drpClass"><div class="dropOptionsDiv" id="actList_ui">'.$tr_active_Options.'</div></div>';
JAVASCRIPT
document.getElementById('anchor').innerHTML = '<div id="editWrap"><?php echo $tr_active; ?></div>';
答案 0 :(得分:1)
字符串中的'
正在终止您使用'
开始的JavaScript字符串。
您可以安全地让PHP生成一个字符串,以便在json_encode
中使用JavaScript,如下所示:
document.getElementById('anchor').innerHTML =
'<div id="editWrap">' +
<?php echo json_encode($tr_active); ?> +
'</div>';
注意JavaScript字符串是如何结束的,然后我们使用+
将它与PHP将输出的字符串连接起来(json_encode
将处理字符串),然后我们+
与另一个字符串连接它之后的JavaScript字符串。浏览器将看到的内容如下所示:
document.getElementById('anchor').innerHTML =
'<div id="editWrap">' +
"contents of $tr_active here" +
'</div>';
......这是有效的。
这就是说:使用PHP生成带有嵌入式JavaScript内部属性的HTML,这是一个受到伤害的世界。分开这些顾虑! : - )