繁体   English   中英

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

[英]How can I include PHP file in my JavaScript code?

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

请帮忙。

相对于这两个答案的说法,如果这一切都发生在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>...'; 

为了确保内容清晰(因为您没有说明include脚本应该做什么以及出现的错误),因为这是PHP,所以不要认为每次调用JS函数时内容都会更新-它惯于! PHP将只渲染一次输出,仅此而已,它将内容发送到浏览器后立即关闭。 因此,如果您的include脚本应该执行某种动态工作(例如从数据库中获取随机文本),则您需要进行AJAX调用来每次加载新内容。 但是从常识和代码外观来看,这似乎并不是您正在做的,只是想让您知道。

重要提示: PHP代码应位于.php文件中,而不适用于.js文件,因此请在主页中编写函数(如果尚未这样做)

为了防止错误,您可以将“ include / dialog_box.php ”的内容加载到变量中,然后用一个小的正则表达式将所有'替换为\\' ,这样就可以确保没有与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>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM