包含我的文件的PHP代码在我的脚本中不起作用:
<script type="text/javascript">
function open_dialog() {
var box_content = '<div id="box_content"><?php include 'includes/dialog_box.php';?><a href="javascript:close_dialog()">close</a></div>';
document.getElementById('dynamic').innerHTML = box_content;
}
function close_dialog() {
document.getElementById('dynamic').innerHTML = '';
}
</script>
拜托,帮助。
答案 0 :(得分:2)
反对两个答案所说的, 应该正常工作如果这一切都发生在PHP文件中并且你包含的PHP脚本输出的东西不会与你的JS结构发生冲突。
考虑报价问题:
如果您的脚本输出,例如:<p class='hey'>Hey there</p>
,它可能是JS的问题,因为最终输出将如下所示:
var box_content = '<div id="box_content"><p class='hey'>Hey there</p><a href="javascript:close_dialog()">close</a></div>';
请注意冲突引号。我知道你可能不这样做,但我想告诉你非常小心那些东西,尤其是引用和退出JS变量上下文。
底线:确保您添加的脚本实际输出您想要的HTML 。还要确保你没有换行符,因为这在JS中无效:
var box_content = '<div id="box_content"><p class="hey">
One line
Another line
</p>...';
,应该在一行中:
var box_content = '<div id="box_content"><p class="hey">One line Another line</p>...';
或者说:
var box_content = '<div id="box_content"><p class="hey">' +
'One line' +
'Another line' +
'</p>...';
要确保它是清楚的(因为你没有说明包含脚本应该做什么以及你有什么错误),因为这是PHP,不要认为每次调用JS时内容都会更新功能 - 它不会! PHP将呈现其输出一次就是它,它一旦将内容发送到浏览器就会关闭。因此,如果你的include脚本应该做某种动态的东西(比如从数据库中获取一个随机文本),那么你需要进行一次AJAX调用来每次加载新内容。但从常识和代码的外观来看,这不是你想要做的,只是想让你知道。
答案 1 :(得分:0)
重要提示: PHP 代码应该在 .php 文件中,它不能在 .js中运行文件,请在主页中写下您的功能(如果您还没有这样做)
为防止出错,您可以加载&#34; includes / dialog_box.php &#34;的内容。在一个变量中,然后用'
替换所有\'
一个小的正则表达式,这样你就可以确定没有与JS相冲突的引号:
var content = "<?php include 'includes/dialog_box.php';?>";
content.replace(/'/g, "\\'");
然后将 content
的值放在 box_content
变量中:
var box_content = '<div id="box_content">' + content + '<a href="javascript:close_dialog()">close</a></div>';