在Javascript中表达php代码

时间:2017-03-02 11:20:55

标签: javascript php html

我试图通过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>';

1 个答案:

答案 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,这是一个受到伤害的世界。分开这些顾虑! : - )