2014-10-17 106 views
0

如何从使用它的JavaScript代码设置PHP类的属性或变量。类是非常基本的,看起来是这样的:如何从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"; 
     ... 
     ... 
    }; 

有什么办法来设置$ publicVariable财产来自JavaScript代码?

谢谢。

+1

您可以使用AJAX将数据发送到PHP,然后相应地设置属性。 – Crackertastic 2014-10-17 02:27:58

+0

Hi Crackertastic,谢谢你的回答。我怎么能这样做? – iSofia 2014-10-17 02:40:54

+0

'$ .ajax()'与zepto或jQuery – rogelio 2014-10-17 02:43:17

回答

0

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

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

+0

嗨tdlive aw'sum,并感谢您的回答。我目前使用*** AddJsonHook ***函数来映射PHP类的功能。是否可以使用相同的方法映射到属性? – iSofia 2014-10-17 02:42:15

+0

PHP的预处理后,您无法更新类属性。您需要发送一个AJAX请求或以其他方式与具有更新属性的服务器进行通信。 – 2014-10-17 02:54:35

+0

另外,我不认为我们中的很多人知道或理解'AddJsonHook'是什么。 Google不提供很多结果。 OMG! – 2014-10-17 03:04:38