PHP变量包含HTML和JavaScript。通过JavaScript将其注入HTML不起作用
我正在尝试向Wordpress自定义帖子类型添加一些自定义PHP代码 在一个单独的php文件中,我有以下内容:PHP变量包含HTML和JavaScript。通过JavaScript将其注入HTML不起作用,javascript,php,html,wordpress,Javascript,Php,Html,Wordpress,我正在尝试向Wordpress自定义帖子类型添加一些自定义PHP代码 在一个单独的php文件中,我有以下内容: <?php $BuildForm = '<script src="//app.marketo.com/js/forms2/js/forms2.min.js"></script> <form id="mktoForm_1111"></form> <script>MktoF
<?php
$BuildForm = '<script src="//app.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_1111"></form>
<script>MktoForms2.loadForm("//app.marketo.com", "345-XCL-354", 1111,
function(form) {
for ( var ss = document.styleSheets, i = 0, imax = ss.length; i < imax; i++ ) {
if ( ( ss[i].href && ss[i].href.indexOf("marketo.com") !== -1 )
|| ( (ss[i].ownerNode || ss[i].owningElement).parentNode == form.getFormElem()[0] ) ) {
}
}
form.onSuccess(function(values, followUpUrl){
location.href = "#";
return false;
});
form.vals({ "comments":"test"});
});
</script>';
?>
<div id="TheForm" style="max-width:40%; margin: 0 auto;"></div>
<script type="text/javascript">
document.getElementById("TheForm").innerHTML = '<?php echo $BuildForm; ?>' ;
</script>
然后在Wordpress中的自定义帖子类型中,我有以下内容:
<?php
$BuildForm = '<script src="//app.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_1111"></form>
<script>MktoForms2.loadForm("//app.marketo.com", "345-XCL-354", 1111,
function(form) {
for ( var ss = document.styleSheets, i = 0, imax = ss.length; i < imax; i++ ) {
if ( ( ss[i].href && ss[i].href.indexOf("marketo.com") !== -1 )
|| ( (ss[i].ownerNode || ss[i].owningElement).parentNode == form.getFormElem()[0] ) ) {
}
}
form.onSuccess(function(values, followUpUrl){
location.href = "#";
return false;
});
form.vals({ "comments":"test"});
});
</script>';
?>
<div id="TheForm" style="max-width:40%; margin: 0 auto;"></div>
<script type="text/javascript">
document.getElementById("TheForm").innerHTML = '<?php echo $BuildForm; ?>' ;
</script>
document.getElementById(“TheForm”).innerHTML='';
我遇到的问题是#表单的内容显示为代码>
我不太清楚问题出在哪里。我是否需要以不同的方式格式化PHP变量中的JavaScript
例如,我尝试了转义“
和/
,但也没有帮助
(在你提问之前,是的,我在我的Wordpress自定义帖子类型中包含了外部php文件)。当然不起作用!php在服务器上执行(不输出任何内容),然后由客户端呈现,然后运行javascript。客户端javascript不知道如何处理php
您的PHP应该返回完整格式的HTML,如下所示:
<?
$BuildForm = '....';
?>
<div id="TheForm" style="max-width:40%; margin: 0 auto;">
<?= $BuildForm ?>
</div>
或者,更改客户端javascript以通过ajax获取$BuildForm
HTML。但是让PHP生成所需的HTML可能更容易。由于$BuildForm
变量包含
,将出现语法错误:意外的EOF
。下面是分配代码的示例:
<script type="text/javascript">
<script src="//app.marketo.com/js/forms2/js/forms2.min.js"></script> <!-- </script> tag will be closed here -->
</script>
是的,卡伦巴。不要这样注入javascript。不好,不好的主意。我的问题是我需要允许Wordpress编辑器能够移动这个div。这个想法是他们在想要的地方添加div容器,然后javascript被注入其中。如果我将div添加到php变量中,那么我的编辑器就不能移动它在Wordpress中使用VisualComposer。通过admin_enqueue_脚本添加JavaScript,而不是通过html注入