我试图让一些PHP在.js文件中执行,但显然不知道如何正确执行。
基本上,代码向我的页面添加了一些HTML标记,我将其用于一个滑出式联系人表单。然而,在Wordpress中,联系人表单本身是由一个短代码完成的。所以我试着让短代码在使表单滑出的代码中工作。
var phpTest = '<?php do_shortcode("[contact-form-7 id=\'1088\' title=\'Live Chat Form\']"); ?>';
// add feedback box
$this.html('<div id="fpi_feedback"><div id="fpi_title" class="rotate"><h2>'
+ thisSettings.title
+ '</h2></div><div id="fpi_content">'
+ phpTest
+ '</div></div>');如果我将变量"phpTest“改为一个带文本的常规字符串,它显示得很好,我只是不确定如何在这个实例中执行php。
发布于 2014-05-10 05:39:42
编辑:脚本类型应该始终是text/javascript,因为application/javascript可能会破坏与旧浏览器的兼容性(我认为IE8和更早版本会忽略该类型的脚本标记)。但是,Content-type仍然应该是application/javascript。
你不能像使用普通的.php文件那样在.js文件中混入php,因为.js文件不会像你的.php文件那样被.php引擎进行预处理。
要做到这一点,最典型的方法是在.php文件中内联js (位于<script>标记之间)。然后它就会像预期的那样工作。
另一种方法是在php中创建一个js文件,因此从下面开始您的.php文件
<?php
header("Content-type: application/javascript");
?>
var jsvar='something';
var othervar='<?php echo $phpVar; ?>';
//<?php //some php ;?>然后像这样把它包含在你的页面上
<script src='myjs.php' type='text/javascript'></script>发布于 2014-05-10 05:46:37
我评论说你的问题是不可能的,但它确实是可能的。不推荐使用,但是如果你不担心可能的安全漏洞,这里有一种方法来解决你的问题:
在与.js文件相同的目录中创建一个.htaccess文件,其中包含以下内容:
AddHandler application/x-httpd-php .js
<FilesMatch "\.js$">
Header set Content-Type "text/javascript; charset=utf-8"
</FilesMatch>这将以PHP的形式执行JavaScript文件,然后自动修复.js文件的Content-Type (因为当您添加php处理程序时,它们会被视为文本)。
注释:虽然这是一个快速而肮脏的解决方案,但更好的方法是使用Ajax (请参阅chiliNUT's Answer)
发布于 2015-05-31 07:43:59
您可以对.php文件执行ajax post请求。这是个小把戏,但很管用。
$.post('thePhpFile',{var1:var1,var2:var2},function(result){
//Code to do with the resulted... like $("#div").html(result);
});使用这个技巧,基本上你可以做任何你想做的事情
https://stackoverflow.com/questions/23574306
复制相似问题