I did just this a while ago; it worked fine for my purposes:

$this->redirect($this->referer());

However, there was a problem. If, after editing an item, it appears in
a different page, then it just won't work.

Example: your index is listed alphabetically. You're on page 3, and
click edit on the entry "Curried Animals: Aardvark to Zebra". You edit
this to "Aardvark to Zebra: A guide to wild curries". It returns you
to page #3 but your entry is now on page #1. Is this the expected
result?

It might be in some cases, and not in others. One of my clients
remarked that it _wasn't_ what they wanted, because it made what they
were doing slower.

I have taken to having a dropdown, similar to the one PhpMyAdmin
offers, where the user can select the next action. "Back to index",
"Find this item", "View this item", "Edit again", "Add new", ... not
all items on each edit, of course, only the relevant ones. The
redirect functionality is in a component (which also generates
appropriate data to set in the <select> options).

hth
grigri

On Mar 9, 10:26 am, Danny Lieberman <[email protected]> wrote:
> This would seem to be a trivial task.  I have a list of paginated
> rows.   I want to be able to click on an edit operation on a
> particular page > 1 and return to the same page.  I save the referer
> on entry to the function and redirect to the saved referer after the
> database save operation - but the controller always returns to the
> controller index method no matter what the user chooses.
>
> I'm running in production mode - perhaps this is related to debug=0?
>
> Here is the code:
>         function fu($id = null) {
>                 $refer = Controller::referer();    // save the calling
> page
>                 if (!$id && empty($this->data)) {
>                         $this->Session->setFlash(__('Invalid Contact',
> true));
>                         $this->redirect(array('action'=>'index'));
>                 }
>                 echo $refer;
>                 if (!empty($this->data)) {
>                         if ($this->Contact->save($this->data)) {
>                                 $this->Session->setFlash(__('The
> Contact has been saved', true));
>                 //              $this->redirect(array
> ('action'=>'index'));
>                                 $this->redirect($refer); // redirect
> back to the calling page after save
>                         } else {
>                                 $this->Session->setFlash(__('The
> Contact could not be saved. Please, try again.', true));
>                         }
>                 }
>                 if (empty($this->data)) {
>                         $this->data = $this->Contact->read(null, $id);
>                 }
>                 $this->set('contact', $this->Contact->read(null,
> $id));
>
> Looks like something really stupid is breaking this but I cant figure
> out what
>
> Danny
--~--~---------~--~----~------------~-------~--~----~
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