Hello,
I've implemented a user model and I have a simple search form for
searching by gender, age, location. I'm using the paginator to
paginate the results. The problem is that it's only remembering the
search criteria on the first page. When I click on page 2, or next
etc.. It defaults back to searching all users.
Here's my dirty search code in my controller, basically it just checks
the submitted form fields and does a query on the matching field in
the Users table and then paginates the results:
if (!empty($this->data)) {
// by name
if (!empty($this->data['User']['search_name'])) {
$this->paginate = array('conditions' => array('visible'=>1,
'OR'=>array(
'User.username LIKE' =>
'%'.$this->data['User']['search_name'].'%',
'User.firstname LIKE' => '%'.$this->data['User']['search_name'],
'User.lastname LIKE' => '%'.$this->data['User']['search_name'])
), 'limit'=>'10', 'order'=>'User.username');
}
// by gender
else if (!empty($this->data['User']['search_gender'])) {
$this->paginate = array('conditions' => array(
'visible'=>1,
'User.gender' => $this->data['User']['search_gender']
), 'limit'=>'10', 'order'=>'User.username');
}
// by state
else if (!empty($this->data['User']['search_state'])) {
$this->paginate = array('conditions' => array(
'visible'=>1,
'User.state' => $this->data['User']['search_state']
), 'limit'=>'10', 'order'=>'User.username');
}
// Send the results for the above criteria to the view
$results = $this->paginate('User');
$this->set('users', $results);
}
// Default retrieval of all users
else {
$this->paginate = array('conditions'=>array('visible'=>1),
'limit'=>'10', 'order'=>'User.username');
$this->set('users', $this->paginate('User'));
}
I'm trying to figure out how to make subsequent pages of the
pagination remember my search criteria. Thanks for any help.
--
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others
with their CakePHP related questions.
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php