Ker*_*ill 7 php wordpress jquery
我试图让一些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>');
Run Code Online (Sandbox Code Playgroud)
如果我将变量"phpTest"更改为带有文本的常规字符串,它显示正常,我只是不确定如何在此实例中执行php.
chi*_*NUT 16
编辑:脚本类型应始终text/javascript与application/javascript可能破坏与旧浏览器的兼容性(我认为IE8和更早版本将忽略该类型的脚本标记).但是,Content-type应该仍然是application/javascript.
您不能将php混合到一个.js文件中,就像使用普通.php文件一样,因为.js文件不是由.php引擎按.php文件的方式预处理的.
最典型的方法 - 包括js文件中的php - 只是<script>在.php文件中有内联JS(标签之间的东西).然后它将按预期工作.
另一种方法是在php中创建一个js文件,所以启动你的.php文件
<?php
header("Content-type: application/javascript");
?>
var jsvar='something';
var othervar='<?php echo $phpVar; ?>';
//<?php //some php ;?>
Run Code Online (Sandbox Code Playgroud)
然后将其包含在您的页面上
<script src='myjs.php' type='text/javascript'></script>
Run Code Online (Sandbox Code Playgroud)
我评论说你的问题是不可能的,但确实有可能.不建议这样做,但如果您不担心可能的安全漏洞,可以通过以下方式解决问题:
使用以下.htaccess命令在与文件相同的目录中创建文件.js:
AddHandler application/x-httpd-php .js
<FilesMatch "\.js$">
Header set Content-Type "text/javascript; charset=utf-8"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
这将以PHP的形式执行您的JavaScript文件,然后自动修复.js文件的Content-Type(因为当您添加php处理程序时它们被视为文本).
注意:虽然这是一个快速而肮脏的解决方案,但更好的方法是使用Ajax(参见chiliNUT的答案)