Thanks guys. Thank you Andras Kende for recommending that plugin. The Cakedc search plugin is AMAZING. So easy. I had a bunch of lines of code written myself to do the search and it was barely working. I exchanged all of my ugly code out and used like maybe 15 lines of code to implement that plugin and it works great.
Thanks Cakedc! Andrew On Oct 29, 2:15 pm, Andras Kende <[email protected]> wrote: > You can do it either with PRG (post redirect get) concept: > > http://bakery.cakephp.org/articles/luciansabo/2011/08/12/post_redirec...http://cakedc.com/downloads/view/cakephp_search_plugin > > or with write the posted form data to a session once and keep reading it > through pagination > > something like: > > if(!empty($this->data['User']['search_name'])) { > $this->Session->write('conditions.firstname', > $thisis->data['User']['search_name']); > } > > if($this->Session->check('conditions')) { > $conditions = $this->Session->read('conditions'); > } else { > $conditions = null > } > > $this->paginate = array( > 'recursive' => -1, > 'conditions' => $conditions, > > Andras Kendehttp://www.kende.com > > On Oct 29, 2011, at 1:27 PM, andrewperk wrote: > > > > > > > > > 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 > > Tutorialshttp://tv.cakephp.org > > Check out the new CakePHP Questions sitehttp://ask.cakephp.organd help > > others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > > [email protected] For more options, visit this group > > athttp://groups.google.com/group/cake-php -- 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
