Solar_Jquery插件

昨天终于把Jquery集成进Solar了。之前一直在关注JQuery PHP Library的动态,且作者也发布了相应的Zend Framework插件,不过最新更新仍然是Mar 16, 2009,看来作者已经很久没有更新了。

大体思路流程如下: 初始化 PHP: 需要 jQuery 库

    require_once 'libraries/jQuery.php';
// many actions
// ...

// get JSON response
jQuery::getResponse();

HTML:加载JS类库jQuery和jQuery.php




JavaScript:

    // do an ajax post request (example)
jQuery.extend({
   php: function (url, params) {
      // do an ajax post request
      $.ajax({
          // AJAX-specified URL
          url: url,
          // JSON
          type: "POST",
          data: params,
          dataType : "json"
      })
   }
});

另外,可以通过addMessage,addError等函数添加Ajax回调函数。

在Solar中,如何使用呢?首先下载下面的Solar\_Jquery Package(下载地址:http://solarphp.cn/download/packages/Solar\_Jquery.rar),直接拷到Solar目录下,i.e., Jquery.php文件和Jquery文件夹放在Solar目录下,ajax.php放到Solar/View/Helper下,jquery.php.js放到Solar/View/Helper/Pagers/Public下。

然后在动作中这样使用:

    public function actionAjax() {
    $jquery = Solar::factory('Solar_Jquery');
    if($jquery->error())
    {
         echo '不是Ajax!';
         exit;
    }
    $this->_response->setHeader('Content-Type', 'application/json');
    $jquery->addQuery('#test0')->html('new content')->css('backgroundColor','#ffff00');
    $jquery->addQuery('div.red')->html('Hello, roy!');
    $jquery->addMessage('hello, world', 'test', 'ok')->fetch();
    //$jquery->fetch();
}

在视图中首先需要加载jquery类库,然后调用ajax辅助函数。

  1. 首先引入jquery类库
$this->head()->addScript('Acme/Controller/Page/jquery.js');
  1. 书写回调函数



3.使用ajax辅助函数 使用view\_helper方法

    $data = array('title'=> 'i love you', 'content' => 'Thanks');
echo $this->action('/blog/ajax', 'Roy',
            $this->ajax('/blog/ajax', 'onclick', $data, array('class'=> 'ajax'), false));?>

手动书写

Test Ajax

在标签里面使用:

<a href="http://solarphp.cn" <?php echo $this->ajax('/blog/ajax', 'onMouseOver',array('title'=> 'i love you', 'content' => 'Thanks'), array('class'=> 'ajax', 'href'=>'/blog/ajax'));?> >Solar PHP</a>

试一下吧,呵呵~