我需要在这样的php变量中放入一个短代码。
<?php
var Variable = "<div class='container-uppotential'>
</div>
<div class='container-historialdepagos'>
</div>
<?php echo do_shortcode('[mper_account_form]');?>
";
return Variable;
?>
但它不是那样工作的。你知道我如何让这个代码像示例中那样工作吗?
首先,您在php中,然后您的变量应该以$符号开始,然后您将html标记保存在一个变量中,并输出它,最后,在所有标记之后插入您的快捷代码。(顺便说一句,你在shorcode中有一个拼写错误,是mepr而不是mper吗)
<?php
$variable = "<div class='container-uppotential'>
</div>
<div class='container-historialdepagos'>
</div>";
echo $variable;
echo do_shortcode('[mepr_account_form]');
?>
PHP在发送任何内容到浏览器之前执行。PHP不是在浏览器中执行的,而是由服务器执行的。
您正在尝试用Javascript发出PHP代码。Javascript在浏览器中执行。当Javascript被执行时,PHP的执行已经结束很久了。服务器从未看到PHP代码。
基本上,你不能用Javascript发出PHP并期望它工作。您可以在PHP中发出Javascript,因为PHP将首先执行,生成的Javascript将被发送到浏览器,然后在浏览器中执行Javascript。
想象一下,微波炉运转一分钟,然后放一杯水进去。水不会被加热,因为你在水加热过程后加入了水。
如果我是你,我会调用do_shortcode()并将结果保存在PHP变量中,然后将该变量的内容发送到Javascript中。这样一来,PHP的执行就发生在PHP执行阶段。
现在,如果您依赖Javascript来设置PHP函数所依赖的一些状态,那么下一步您将使用类似AJAX的东西,并编写一个独立的PHP servlet,它从AJAX调用中获取状态信息,执行PHP以生成所需的输出,然后Javascript在AJAX组件中显示结果。
我在您的代码中看到的唯一问题是Javascript不允许字符串包含换行符,所以如果您想在多行上使用换行符,则需要将其拆分。
var Variable = "<div class='container-uppotential'>" +
"</div>" +
"<div class='container-historialdepagos'>" +
"</div>" +
"<?php echo do_shortcode('[mper_account_form]');?>";
return Variable;