使用PHP生成JavaScript按预期工作,并使用JavaScript生成PHP按预期工作,但是使用PHP生成JavaScript来生成PHP似乎不起作用。
我的代码是否存在导致此失败的问题,或者是某种限制?
<!-- Use JavaScript to generate PHP -->
<script type='text/javascript'>
function addComment()
{
alert("About to add some content");
document.write("<?php testFunction(); ?>");
}
</script>
<!-- Use PHP to generate JavaScript to generate PHP -->
echo "<script type='text/javascript'>";
echo "function addComment2()";
echo "{";
echo 'alert("About to add some content");';
echo 'document.write("<?php testFunction(); ?>");';
echo "}";
echo "</script>";
(testFunction()只包含echo "Test";
)
答案 0 :(得分:3)
PHP是在服务器端执行的代码。 JavaScript是在客户端执行的代码。他们对另一方一无所知。
您可以使用PHP生成几乎任何您想要的内容。
你的问题是第四个回声:
echo 'document.write("<?php testFunction(); ?>");';
你告诉echo打印这个字符串:
document.write("<?php testFunction(); ?>");
此字符串将发送到客户端(和浏览器)。浏览器(javascript引擎)运行此代码并产生如下输出:
<?php testFunction(); ?>
我们已经在你的服务器上留下了php解释器,因为我们已经在客户端了。客户不能对此有所了解。
如果您用以下内容替换您的行:
echo 'document.write("', testFunction() ,'");';
您的代码将按预期执行。
但是为此你改变了你的testFunction。只需替换
function testFunction() {
return "Test";
};
,服务器的输出将是
document.write("Test");
答案 1 :(得分:0)
使用JavaScript生成PHP不起作用。在第一种情况下,它首先作为php执行,因此运行testFunction(),这个结果javascript被发送到浏览器并执行。
答案 2 :(得分:0)
您似乎不了解Server-Client模型。 Javascript在客户端上执行,而PHP在服务器上执行。客户端无法执行PHP,也无法将PHP代码发送到要执行的服务器。这是不可能的。