> I do realize having session is easier, but I'm practicing not to use
> sessions so much. I did manage to use query in URL using get instead
> of post (well, apparently if i use post, i will have to use sessions
> later on, since there will be no more data to be passed on after going
> to different pages).

Not quite true, you can send query via post to an action, process it
to form a clean url and redirect to it then in that url do the real
search.


  Here's what I have in my controller and view:
>        Partial APP/controllers/parts_controller.php:
>
>        function index($keyword = null)
>        {
>                if (isset($this->params['url']['keyword']))
>                        $keyword = $this->params['url']['keyword'];
>
>                if ($keyword) {
>                        $conditions = array("or" => array("name" => "LIKE 
> %".$keyword."%",
>                        "part_number" => "LIKE %".$keyword."%",
>                        "part_nokia" => "LIKE %".$keyword."%"));
>                        $this->set('parts', $this->paginate('Part', 
> $conditions));
>
>                } else {
>                        $this->Part->recursive = 2;
>                        $this->set('parts', $this->paginate());
>                }
>        }
>        Partial APP/views/parts/index.ctp:
>        <?php
>                if (isset($this->params['url']['keyword']))
>                        $currentUrl = $this->params['url']['keyword'];
>                else if (isset($this->params['pass']))
>                        $currentUrl = $this->params['pass'];
>                else
>                        $currentUrl = array();
>                echo $paginator->options(array('url' => $currentUrl));
>        ?>
>
> Now, my problem is the URL looks APP/parts?keyword=<input query> when
> searching for the first time, and when I click on the next page (since
> I use $this->params['pass'] in the view) it looks APP/parts/index/
> <keyword>/page:<page_number>. A little ugly workaround, I think.
>
> What I'm trying to do next is I want to make the URL to look APP/parts/
> index/keyword:<input query>/. Is this possible? Because I have another
> controller where there is more than 1 input box, and the address
> becomes APP/controllers?
> keyword=<query>&anotherkeyword=<another_query>, and with the current
> solution I have, it no longer works, since index() only accepts one
> field.  I think if the URL can look APP/controllers/index/
> keyword:<query>/keyword2:<another_query>, it will look better, and
> will be easier to manage in my controller.
>
> I would be very grateful for your help.
> Thank you.
> Reza Muhammad
>
> On Jun 12, 2008, at 6:16 PM, Dardo Sordi Bogado wrote:
>
>>
>> Yes, put the parameters for the query in the URL (better) or in the
>> Session (easier, bad) and paginate using that.
>>
>> On Thu, Jun 12, 2008 at 1:37 AM, Reza Muhammad
>> <[EMAIL PROTECTED]> wrote:
>>>
>>> Hi,
>>>
>>> I'm having a problem with pagination after I searched for a
>>> particular
>>> field.  In my index, I have a Spare parts lists, and users can search
>>> for a particular parts they are looking for.  The thing is, if the
>>> result returns more than 20 items (which I use pagination), I can't
>>> go
>>> to the second page, or the third page, because it will go the index
>>> pagination (second page/third page of all spare parts lists)
>>>
>>> Here's what I have in my parts_controller:
>>>
>>>       function index()
>>>       {
>>>               if (!empty($this->data)) {
>>>                       $conditions = array("or" => array("name" =>
>>> "LIKE %".$this-
>>>> data['Part']['keyword']."%",
>>>                       "part_number" => "LIKE %".$this->data['Part']
>>> ['keyword']."%",
>>>                       "part_nokia" => "LIKE %".$this->data['Part']
>>> ['keyword']."%"));
>>>                       $this->set('parts', $this->paginate('Part',
>>> $conditions));
>>>
>>>               } else {
>>>                       $this->Part->recursive = 2;
>>>                       $this->set('parts', $this->paginate());
>>>               }
>>>       }
>>>
>>> I think the problem is, in index, it will look for $_POST data, but,
>>> when I want to go to the second page, it will not go to the first
>>> "if"
>>> statement, and instead it will look for pagination from "else"
>>> statement.
>>>
>>> Is there any simpler way to do this? I'm not looking for Ajax
>>> solutions or anything like that, as long as it works.
>>>
>>> Thank you so much.
>>> reza
>>>
>>>>
>>>
>>
>> >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to