【发布时间】:2017-12-27 10:15:21
【问题描述】:
我有这个代码:
<?php $html=file_get_contents('testmaker_html.html');
echo $html;
?>
<script type="text/javascript">
document.getElementById('save_finaly_TEST').addEventListener("click", function(){
cover = document.getElementById('cover').value;
keywords = document.getElementById('keywords').value.split(",");
notificationAboutElement = "Ok!";
notifyMe(notificationAboutElement);
html_saver();
<?php $test_html = "<script>document.write(html)</script>"?>
});
</script>
<?php
$new_test = rand().".html";
$myfile = fopen($new_test, "w") or die("Unable to create file!");
write($myfile, $test_html) or die("Can't write to file");
fclose($myfile) or die("Can't close the file!");
echo $new_test;
?>
<script type="text/javascript">
console.log("$test_html: " + <?php echo $test_html; ?>);
console.log("$new_test: " + <?php echo $new_test; ?>);
</script>
为什么$test_html 是空的?我知道 php 和 javascript 不在同一台服务器上,但是这种方法可以多次获取值,对很多人都有效。这有什么问题?
【问题讨论】:
-
PHP 和 JS 在不同的时间运行。你需要重新考虑这一点。
-
我看不出这对任何人都有效。 JS 在发送到客户端之前不会运行。这对 PHP 来说只是毫无意义的文本。
-
您让工厂(服务器/PHP)为您制造了一辆汽车,并将其运送到您家门口。现在在您的车道(客户)上,您在挡风玻璃上贴了一个红色贴纸……并期望工厂自动知道这一点?不,这当然行不通。您需要将此信息发送到工厂 - 这意味着,您需要直接(提交表单,加载带有 URL 参数的新页面)或在后台通过 AJAX。
-
因为 php 先运行所以这行得通? :
<script> var jsvar = <?php echo json_encode($PHPVar); ?>; </script> -
@KronologiaitVme 其中的 PHP 部分将运行,它会回显 Javascript 代码,但 Javascript 在发送到客户端之前不会真正运行。
标签: javascript php php-5.2