Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从js脚本向当前php文件发送数据_Javascript_Php_Html_Ajax - Fatal编程技术网

Javascript 从js脚本向当前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

我有一个php文件content.php,当前正在浏览器中加载:

<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
  • php的
    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