【问题标题】:How to set PHP class property from JavaScript如何从 JavaScript 设置 PHP 类属性
【发布时间】:2014-12-12 13:25:05
【问题描述】:

如何从使用它的 JavaScript 代码设置 PHP 类的属性或变量。这个类非常基础,看起来像这样:

    <?php

    class_exists('api') or die();

    class className extends someOtherClass
    {
        public function __construct(...
        {
            parent::__construct('1.0', ...
        }

        public $publicVariable = "initBlank";

        public function Init()
        {
            parent::Init();
            $this->Set...
            $this->Add...
        }

        public function someFunction()
        {
            ...
            ...
            return array(...
        }   

    }

    return new className($this);

而且调用JavaScript代码也很基础:

    function classView()
    {
        this.var1 = ko.observable(0);
        this.var2 = ko.observable('');
    }

    classView.prototype...
    classView.prototype...

    classView.prototype.clickBtn = function ()
    {
        this.publicVariable = "myValue";
        ...
        ...
    };

有没有办法从 JavaScript 代码中设置 $publicVariable 属性?

谢谢。

【问题讨论】:

  • 您可以使用 AJAX 将数据发送到 PHP,然后相应地设置属性。
  • 您好 Crackertastic,感谢您的回答。我怎么能这样做?
  • $.ajax() 使用 zepto 或 jQuery
  • @iSofia 您可以使用像 jQuery 这样的 JS 库,或者如果您更喜欢原生 JS,您可以使用 XMLHttpRequest 对象。基本上,您将对 PHP 脚本进行异步调用,然后当 PHP 完成时,可以使用 JS 中的回调捕获任何响应。
  • 你好罗杰里奥。这是针对 webmail 客户端中的插件的,我认为我不能使用 jQuery 甚至 XHR 来解决这个问题。他们提供了一种专有机制,可以使用 AddJsonHook 函数向类发送 AJAX 请求。

标签: javascript php class properties getter-setter


【解决方案1】:

PHP 是一个预处理器,这意味着 Web 服务器(例如 Apache)执行 PHP 并将结果返回给客户端。因此,无法通过客户端 JavaScript 动态更新 PHP 变量。

但是,您可以执行 AJAX 请求以将变量存储在服务器上的某个位置,然后从 PHP 访问它。

【讨论】:

  • 您好 tdlive aw'sum,感谢您的回答。我目前使用 AddJsonHook 函数来映射 PHP 类函数。难道不能用同样的方法映射到属性吗?
  • PHP 预处理后不能更新类属性,期间。您将需要发送 AJAX 请求或以其他方式与更新后的属性的服务器进行通信。
  • 此外,我认为我们中的许多人都不知道或理解AddJsonHook 是/做什么。 Google 提供的结果不多。
  • 天啊!你是对的 tdlive aw'sum。这似乎是他们专有机制的一部分。我会尝试看看是否可以使用 jQuery 或 XHR。感谢您的回答。
猜你喜欢
  • 2012-06-21
  • 2022-01-08
  • 2011-01-23
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多