在.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代码: