> 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
-~----------~----~----~----~------~----~------~--~---