如何在我的JavaScript代码中包含PHP文件?

时间:2014-10-17 11:08:19

标签: javascript php

包含我的文件的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>

拜托,帮助。

2 个答案:

答案 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>';