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辅助函数。
- 首先引入jquery类库
$this->head()->addScript('Acme/Controller/Page/jquery.js');
- 书写回调函数
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>
试一下吧,呵呵~