我正在使用cake php滚动分页来分页产品。我在视图部分使用一组复选框来设置手动条件由用户分页。我使用以下代码设置ajax请求后的条件。
class SearchController extends AppController {
public $helpers = array('Html', 'Form', 'Session','Paginator','Js' => 'Jquery');
public $components = array('RequestHandler','Session','Cookie','Paginator');
public function index() {
$this->loadModel("Bangsworkinghrs");
$agetworkinghrs = $this->Bangsworkinghrs->getworkinghrs();
$this->set('agetworkinghrs', $agetworkinghrs);
$this->loadModel("Gig");
$options = array('Gig.subcategory' => 'Logo Design');
if(!empty($this->request->data['filter']['workinghrs'])) {
$options = array('Gig.subcategory' => 'Logo');
}
$this->Paginator->settings = $options;
$agetGigsItem = $this->Paginator->paginate('Gig', $options);
$this->set('agetGigsItem', $agetGigsItem);
}
}
通过这段代码,我能够改变分页的条件,但服务器爆炸只有默认的20条记录下记录不是由服务器爆炸,没有错误信息我的cakephp版本是2.6.8
$('#filter').submit();
尝试提交表单和删除ajax刷新数据从您的jquery部分替换过滤器与您的表单名称
您缺少Cakephp默认分页的'page'和'limit'属性。
在你的选项数组中,你需要传递页码和每页的记录数。
类似于此,但以动态的方式。
$options = array('conditions' => array('Gig.subcategory' => 'Logo Design'),'page'=>2,'limit'=>20);
using action="get" in the form where $this->request->query['filter']['workinghrs'] data is come.
编码:public $paginate = array(
'limit' => 20
);
public function index()
{
$this->loadModel("Gig");
$options = array('Gig.subcategory' => 'Logo Design');
if(!empty($this->request->query['filter']['workinghrs'])) {
$options = array('Gig.subcategory' => 'Vector Design');
}
$this->Paginator->settings = $options;
$agetGigsItem = $this->Paginator->paginate('Gig', $options);
$this->set('agetGigsItem', $agetGigsItem);
}