Javascript 从js脚本向当前php文件发送数据
我有一个php文件content.php,当前正在浏览器中加载:Javascript 从js脚本向当前php文件发送数据,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我有一个php文件content.php,当前正在浏览器中加载: <html> <head> <title>Content</title> <script src="content.js"></script> </head> <body> <?php if ( isset($_POST["stat
<html>
<head>
<title>Content</title>
<script src="content.js"></script>
</head>
<body>
<?php
if ( isset($_POST["status"]) && ($_POST["status"] === 1) ) {
?>
Content for users with status 1
<?php
} else {
?>
Content for users with different status
<?php
}
?>
</body>
</html>
内部变量
content.js
我曾经考虑过使用一个隐藏的html表单并通过javascript单击submit按钮,但这看起来并不是一个优雅的解决方案
我还考虑过使用XMLHttpRequest,问题是我没有找到通过XMLHttpRequest将数据发送到当前查看/加载页面的方法
我没有使用额外的库,只有javascript和php
对于我的问题,有没有更优雅的解决方案,隐藏的html表单?POST变量只能在请求头中传递。这意味着它必须是表单提交,正如您已经知道的,或者是AJAX请求。无法让单独的客户端资源向现有请求提供新信息 似乎您需要使用AJAX,因为您需要以隐藏方式执行服务器端脚本并更新html
interface.php
有content.js
和div
content.js
发送状态为的ajax post请求
content.php
根据status
div
已更新李>
下面是content.js
和interface.php
let status=1;
loadDoc(状态);
函数loadDoc(状态){
设xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=()=>{
如果(xhttp.readyState==4&&this.status==200){
document.getElementById(“内容”).innerHTML=
xhttp.responseText;
}
};
open(“POST”,“content.php”,true);
xhttp.send(“状态=”+状态);
}
内容
根据什么更改它?这听起来像是一个简单的解决方案,为什么不使用会话值来设置状态?定义优雅的解决方案。
content.js