javascript - 从js脚本发送数据到当前的php文件

标签 javascript php html ajax

我有一个 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>

我想做的是设置

$_POST["status"]

内部变量

content.js

我考虑过使用隐藏的 html 表单并通过 javascript 单击提交按钮,但这看起来并不是一个优雅的解决方案。

我也考虑过使用 XMLHttpRequest,问题是我还没有找到通过 XMLHttpRequest 将数据发送到当前查看/加载页面的方法。

我没有使用额外的库,只有 javascript 和 php。

对于隐藏的 html 表单,是否有更优雅的解决方案?

最佳答案

似乎您需要使用 AJAX,因为您需要以隐藏方式执行服务器端脚本并更新 html。

  1. interface.phpcontent.js 和一个 div
  2. content.js 发送带有status的ajax post请求
  3. content.php 根据status
  4. 发送内容
  5. interface.phpdiv 已更新。

这里是 content.jsinterface.php

let status = 1;
loadDoc(status);

function loadDoc(status) {
  let xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = () => {
    if (xhttp.readyState == 4 && this.status == 200) {
      document.getElementById("content").innerHTML =
      xhttp.responseText;
    }
  };
  xhttp.open("POST", "content.php", true);
  xhttp.send("status=" + status);
}
<html>
    <head>
        <title>Content</title>
        <script src="content.js"></script>
    </head>

    <body>
       <div id="content"></div>
    </body>
</html>

这是你的content.php

<?php
    if ( isset($_POST["status"]) && ($_POST["status"] === 1) ) {
?>

    Content for users with status 1

<?php
    } else {
?>

    Content for users with different status

<?php
    }
?>

宾果游戏!您通过 content.js

设置 $_POST["status"]

关于javascript - 从js脚本发送数据到当前的php文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47880206/

相关文章:

php - 每日/每周/每月高分

javascript - 向下滚动后修复第一个 div 下的第三个 div

javascript - ASP 中的正则表达式巫术

javascript - React 组件被调用两次(AJAX 调用异步)

php - Ubuntu 15.04 之后的 Zend PDO 问题

javascript - 如何像 HTML 编辑器一样自动为代码着色

javascript - 旋转木马的交叉淡入淡出效果无法正常工作

javascript - 如何在自动完成 jquery 中提交有关选择项目的表单?

javascript - Jasmine 中的跳跃测试

php - 检查 Eloquent 查询是否没有返回答案的最佳方法是什么?