我正在尝试使用一个php变量,当点击<li>
时,该变量包含一个html片段以显示在div中。如果变量只包含没有html的文本字符串,则下面的代码有效。但是只要我添加html它就会停止工作。我做错了什么?
我已根据我在下面收到的帮助更新了代码,但它仍无效。
这有效:
$(function() {
$('#tab-1').click(function() {
alert('click event called!'); var tabcontent = "Test Content";
document.getElementById('top-tabs-content').innerHTML = tabcontent;
});
});
这不是:
$(function() {
$('#tab-1').click(function() {
alert('click event called!'); var tabcontent = "<?php echo json_encode($tabcontent[0]);?>";
document.getElementById('top-tabs-content').innerHTML = tabcontent;
});
});
答案 0 :(得分:1)
尝试替换
var tabcontent = "<?php echo $tabcontent[1]; ?>"
与
var tabcontent = "'" + "<?php echo $tabcontent[1]; ?>" + "'";
答案 1 :(得分:0)
找到解决方案! preg_replace和addslashes可以使javascript正确。问题是变量中的html是多行,这在JS函数中不起作用。以下是将JS var设置为PHP var而不会破坏的方法:
var tabcontent = "<?php echo preg_replace("/\r?\n/", "\\n", addslashes($tabcontent[1]));?>";