在.js文件中执行PHP代码
我试图让一些PHP在.js文件中执行,但显然不知道如何正确地执行它。
基本上代码是在我的页面上添加一些HTML标签,我将其用于滑动联系表单。 然而,联系表单本身是通过短代码在Wordpress中完成的。 所以我试图让短代码在代码中运行,使表单滑出。
var phpTest = ''; // add feedback box $this.html('' + thisSettings.title + '
' + phpTest + '');
如果我将变量“phpTest”更改为带有文本的常规字符串,它显示正常,我只是不确定如何在此实例中执行php。
编辑 :脚本类型应始终是text/javascript
因为application/javascript
可能会破坏与旧版浏览器的兼容性(我认为IE8及更早版本将忽略该类型的脚本标记)。 但是,Content-type应该仍然是application/javascript
。
您不能将php混合到.js
文件中,就像使用普通的.php
文件一样,因为.php
文件不像.php
文件那样预处理.js
文件。
最典型的方法 – 包括js文件中的php – 只是在.php文件中有内联JS( 标签之间的东西)。 然后它将按预期工作。
另一种方法是在php中创建一个js文件,所以启动你的.php文件
var jsvar='something'; var othervar=''; //
然后将其包含在您的页面上
我评论说你的问题是不可能的,但确实有可能。 不建议这样做 ,但如果您不担心可能的安全漏洞,可以通过以下方式解决问题:
在与.js
文件相同的目录中创建.htaccess
文件,其中包含以下内容:
AddHandler application/x-httpd-php .js Header set Content-Type "text/javascript; charset=utf-8"
这将以PHP格式执行您的JavaScript文件,然后自动修复.js文件的Content-Type(因为当您添加php处理程序时它们被视为文本)。
注意 :虽然这是一个快速而肮脏的解决方案,但更好的方法是使用Ajax(参见chiliNUT的答案 )
您可以对.php文件执行ajax post请求。 这是一个有点肮脏的技巧但它的工作原理
$.post('thePhpFile',{var1:var1,var2:var2},function(result){ //Code to do with the resulted... like $("#div").html(result); });
有了这个技巧,你可以基本上做任何你想做的事情
假设您的文件名是myscript.js:
在你的头标签(它必须是一个可执行的PHP文件):
……以这种方式,您可以像执行php文件一样执行该文件
我认为你可以使用AJAX做这样的事情:
JS代码:
var xmlhttp; if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else{ // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ $this.html('' + thisSettings.title + '
' + xmlhttp.responseText + ''); } } xmlhttp.open("GET","do_shortcode_file.php",true); xmlhttp.send();
do_shortcode_file.php必须具有以下内容:
PHP代码: