PHP不会根据来自Javascript的HTTP请求将数据存储在数组中

低的

我通过此JavaScript方法将数组传递给PHP文件:

/**
 * The PHP file which receives the data
 *
 * @type {string} The php filename
 */
const INSTALL_FILE = "install.php";

/**
 * Passes roadTaxData to the php install file which could be get with the $_POST operator
 */
function passToPHP (paramName, data) {
    var httpc = new XMLHttpRequest(); // simplified for clarity"
    httpc.open("POST", INSTALL_FILE, true); // sending as POST

    httpc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    /*
     Test purposes
     */
    httpc.onreadystatechange = function () { //Call a function when the state changes.
        if (httpc.readyState == 4 && httpc.status == 200) { // complete and no errors
            console.log(httpc.responseText); // some processing here, or whatever you want to do with the response
        }
    };
    httpc.send(paramName + "=" + data);
}

在我的正在接收数据的PHP文件中(确实,我正在调用该方法并进行了实际测试),我有这样的东西:

$road_tax_data = json_decode($_POST['road-tax_data'], true);
require "RoadTaxDataParser.php";

RoadTaxDataParser::set('test', $road_tax_data);

与此文件有关的:

class RoadTaxDataParser
{
    private static $data = [];

    public static function set ($key, $value) {
        self::$data[$key] = $value;
    }

    public static function get ($key) {
        return self::$data[$key];
    }
}

并且(希望)将数据存储在其中。

问题

当我尝试像这样文件中调用get()方法时RoadTaxDataParserindex.php

echo RoadTaxDataParser::get('test');

我收到一条错误消息:

注意:未定义的索引:在第13行的C:\ Users \ Bas \ Documents .... \ Cars \ RoadTaxDataParser.php中进行测试

预期结果

我希望我可以通过HTTP请求将数据存储在某种Registry类中,然后在以后需要时获取数据。

这样做的目的是,我不想使用JavaScript进行任何计算或html部署,我想使用PHP进行此操作。

问题

如何从JavaScript HTTP请求将数据存储在类中,然后随index.php文件一起回叫

我自己尝试

我尝试了Axel在会议上告诉我的方式。在我的install.php文件中是这样的:

header('Content-Type: application/json');

$road_tax_data = json_decode($_POST['road-tax_data'], true);
$_SESSION['rtd'] = $road_tax_data;

然后通过我的index.php

var_dump($_SESSION['rtd']);

这给了我这个错误:

注意:未定义变量:C:\ Users \ Bas \ Documents ...。\ Cars \ index.php在第26行NULL上的_SESSION

阿克塞尔·安索(Axel Amthor)

没有像使用PHP的即时应用程序服务器这样的东西。

每个脚本都需要一次又一次地将整个应用程序上下文加载到内存中。那是PHP的最大缺点。

如果您有一个存储上下文值的对象(例如RoadTaxDataParser),则需要保存状态,并在下一个脚本中将其还原,在执行脚本后进行正弦存储,内存将被清除,RoadTaxDataParser的实例也将消失。

您可以使用单例设计模式(未测试代码)来做到这一点:

class RoadTaxDataParser
{
    public static $__instance = null;
    private static $data = [];

    public static function set ($key, $value) {
        self::$data[$key] = $value;
        $_SESSION['rtdp'] = self;  // could be done better
    }

    public static function get ($key) {
        return self::$data[$key];
    }

    public static function getInstance() {
          if ( self::$__instance != null )
                 return self::$__instance;
          self::$__instance = isset($_SESSION['rtdp']) ? $_SESSION['rtdp'] : new RoadTaxDataParser();

          return self::$__instance;

}

接着

 RoadTaxDataParser::getInstance()->set('test', $road_tax_data);

此外,您需要在每个脚本中首先启动会话:

 session_start(); 

请参阅php.net/manual/en/function.session-start.php-作为第一个声明!

实际上,仅在脚本终止时才需要将该对象同步到会话中,而不必每次都分配值时才将其同步到会话中。但这需要另一个处理程序,这会使这里的结构复杂化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP将数据存储在数组中并读取它们

来自分类Dev

将数组存储在数据协定中

来自分类Dev

无法将数据存储在数组中

来自分类Dev

如何将类数据存储在数组中,并根据需要重新调用此数据?

来自分类Dev

使用PHP在数据库中存储价值-来自JavaScript的Ajax调用

来自分类Dev

使用PHP将查询结果存储在数组中并在Javascript中使用数组

来自分类Dev

如何将数据存储在数组(JavaScript)中的承诺中?

来自分类Dev

PHP / MYSQL 循环仅迭代一次,无法将数据存储在数组中

来自分类Dev

将数组值存储在数据库前端angular2后端php中?

来自分类Dev

从 React 中的输入字段将数据存储在数组中

来自分类Dev

将坐标和各种游戏数据存储在数组JAVASCRIPT中

来自分类Java

如何将数据存储在数组中,使用函数

来自分类Dev

如何从Web API将数据存储在数组中

来自分类Dev

如何将解析后的数据存储在数组中?

来自分类Dev

如何将接收到的数据存储在数组中?

来自分类Dev

将 php 数组存储在 javascript 数组中

来自分类Dev

PHP在数据库中存储数组

来自分类Dev

Javascript在数组中存储多个数据对象

来自分类Dev

从foreach循环php将信息存储在数组中

来自分类Dev

将PHP变量存储在数组中,直到循环结束

来自分类Dev

PHP - 将查询结果存储在数组中

来自分类Dev

Javascript将多个字段存储在数组中

来自分类Dev

将多个单选按钮值存储在数组Javascript中

来自分类Dev

将数组数据存储在单行PHP中

来自分类Dev

将php代码规则存储在数据库中

来自分类Dev

将数据存储在数据帧中

来自分类Dev

PHP将数据逐行保存在数组中?

来自分类Dev

来自CSV的数据在数组(PHP数组)中彼此并排放置

来自分类Dev

在ajax请求中存储来自php的响应

Related 相关文章

  1. 1

    PHP将数据存储在数组中并读取它们

  2. 2

    将数组存储在数据协定中

  3. 3

    无法将数据存储在数组中

  4. 4

    如何将类数据存储在数组中,并根据需要重新调用此数据?

  5. 5

    使用PHP在数据库中存储价值-来自JavaScript的Ajax调用

  6. 6

    使用PHP将查询结果存储在数组中并在Javascript中使用数组

  7. 7

    如何将数据存储在数组(JavaScript)中的承诺中?

  8. 8

    PHP / MYSQL 循环仅迭代一次,无法将数据存储在数组中

  9. 9

    将数组值存储在数据库前端angular2后端php中?

  10. 10

    从 React 中的输入字段将数据存储在数组中

  11. 11

    将坐标和各种游戏数据存储在数组JAVASCRIPT中

  12. 12

    如何将数据存储在数组中,使用函数

  13. 13

    如何从Web API将数据存储在数组中

  14. 14

    如何将解析后的数据存储在数组中?

  15. 15

    如何将接收到的数据存储在数组中?

  16. 16

    将 php 数组存储在 javascript 数组中

  17. 17

    PHP在数据库中存储数组

  18. 18

    Javascript在数组中存储多个数据对象

  19. 19

    从foreach循环php将信息存储在数组中

  20. 20

    将PHP变量存储在数组中,直到循环结束

  21. 21

    PHP - 将查询结果存储在数组中

  22. 22

    Javascript将多个字段存储在数组中

  23. 23

    将多个单选按钮值存储在数组Javascript中

  24. 24

    将数组数据存储在单行PHP中

  25. 25

    将php代码规则存储在数据库中

  26. 26

    将数据存储在数据帧中

  27. 27

    PHP将数据逐行保存在数组中?

  28. 28

    来自CSV的数据在数组(PHP数组)中彼此并排放置

  29. 29

    在ajax请求中存储来自php的响应

热门标签

归档