jsp*_*shu 6 php jquery zend-framework zend-paginator
在控制器中我有:
$paginator = Zend_Paginator::factory($mdlPost->getPosts($this->moduleData->accordion, 'name ASC'));
if(isset($params['cities'])) {
$paginator->setCurrentPageNumber(intval($params['cities']));
}
$paginator->setItemCountPerPage(4);
$this->view->posts = $paginator;
Run Code Online (Sandbox Code Playgroud)
在视图中我有这样的事情:
if ($this->posts != null) {?>
<div id="cities_accord" class="news">
<?php echo $this->partialLoop('partials/post-min.phtml', $this->posts); ?>
</div>
<?php echo $this->paginationControl($this->posts,
'Sliding',
'public/pagination_cont.phtml');
}
Run Code Online (Sandbox Code Playgroud)
部分/后min.phtml
<?php
$color = array(1=>'spring',2=>'summer',3=>'autumn',4=>'winter');
?>
<div id='<?php echo $color[$this->partialCounter] ?>' class="accordion_post">
<?php
$link = Digitalus_Uri::get(false, false, array('openCity' =>
$this->id));//$color[$this->partialCounter]));
?>
<h1 class="accordion_post_title"><?php echo $this->title ?></h1>
<p><?php echo $this->teaser ?> <a href="<?php echo $link;?>"><i>read more</i></a></p>
</div>
Run Code Online (Sandbox Code Playgroud)
从这个链接获取的pagination_cont.phtml zend(http://framework.zend.com/manual/en/zend.paginator.usage.html)将显示将params传递给控制器以获取相应整个页面的链接.现在好好工作
但我想改变这一点,以便我能够ajaxify返回(即只有一个分页值而不是重新加载整个页面)结果我怎么能用jquery做什么,我应该改变什么..
**编辑:如果可能的话,对于禁用javascript以通过重新加载页面来查看相同内容的浏览器(用户)进行故障保存会很好(即保持if(javascript_not_enabled)的当前状态)**
明白了,非常感谢@Phil Brown:
在控制器 int() 中将响应类型更改为 json
class NewsController extends Zend_Controller_Action
{
public function init()
{
$contextSwitch = $this->_helper->getHelper('contextSwitch');
$contextSwitch->addActionContext('list', 'JSON')
->initContext();
}
// ...
}
public listAtcion() {
// .............
$paginator = Zend_Paginator::factory($mdlPost->getPosts($this->moduleData->accordion, 'name ASC'));
if(isset($params['cities'])) {
$paginator->setCurrentPageNumber(intval($params['cities']));
}
$paginator->setItemCountPerPage(4);
$post = array();
foreach($paginator as $post ) {
$post[] = $post;
}
$this->view->post = $paginator;
#TODO //add a check here for non-ajax requests (#improvment)
$this->view->posts = $paginator;
}
Run Code Online (Sandbox Code Playgroud)
在分页控制器上的视图之一(最有可能在 pagination_cont.phtml 中)添加 ajax 链接
<?= $this->ajaxLink (
$this->url('cities'=>$this->page_num),array('id'=>'div_id','complete'=>'js_method(json_data)','method'=>post) ,array('format'=>'JSON'));
Run Code Online (Sandbox Code Playgroud)
并添加 js_method(json_data) 的 JavaScript 函数,用 json 数据修改 id = 'div_id' 的 div
function js_method(json_data) {
var content = parse.JSON(json_data);
$('#div_id').html('');
//fill it with the reposnse content some thing like $('#div_id').append(content);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |