好吧,正如其他人所说,您不能将 JS 与 PHP 混合使用。这是两者分开的客户端/服务器架构。
我不知道你的情况,但如果你是从 php 打印 JS(意味着来自同一个 .php 页面),那么你的方法可能会根据你的需要起作用。
但是由于您的 JS 在单独的文件中。然后它只有在客户端的浏览器加载时才会执行。(这是你想要的吗?)
一旦代码在客户端浏览器上,它就无法看到服务器上的内容。从服务器获取一些数据的唯一方法是通过 AJAX 请求发起请求以提取数据(我想还有其他方法,但我将自己限制在您的情况下)。
因此我们有两种情况。
案例 1:将 JS 与 PHP 分开,放在一个单独的文件中。
示例 script.php
<?php
$filename = "./about.txt";
$doc = file_get_contents($filename);
echo $doc;
?>
. . 动作.js
//using pure js ajax request
function get_about() {
var ajaxRequest;
try {
ajaxRequest = new XMLHttpRequest();
} catch (e) {
try {
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Connection lost. Please try again.");
return false;
}
}
}
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState == 4) {
document.getElementById("div2").innerHTML = ajaxRequest.responseText;
}
}
ajaxRequest.open("GET", "script.php");
ajaxRequest.send(null);
}
案例 2:JS 和 PHP 位于同一个文件中,意味着 JS 将与 PHP 代码一起打印并一起发送到客户端的浏览器。
方法1:打开javascript标签并将你的js代码放在那里
示例 script.php
<?php
$filename = "./about.txt";
$doc = file_get_contents($filename);
echo "<script>
function get_about() {
document.getElementById("div2").innerHTML = '{$doc}'
}
</script>";
?>
请注意,如果 $doc 包含 (",',>,<,\,/) 取决于您的 html,则将 $doc 放入 js 字符串可能会损坏。
方法2:结合前面的方法。将数据分配给 JS 变量并从 JS 文件中访问它。这样你仍然可以拥有单独的 JS 文件
示例 script.php
<?php
$filename = "./about.txt";
$doc = file_get_contents($filename);
echo "<script>
var doc = '{$doc}'//global variable
</script>";
?>
动作.js
//using pure js ajax request
function get_about() {
document.getElementById("div2").innerHTML = doc ;
}