Hi Carl,

You help me when you talk about the form action. I change it to 
http://localhost:3000/person/view/1#tab1 and now it's working :). I notice you 
are the owner of FormFu. Thanks for your job it should be very long and hard to 
produce this super module.

Thanks for you help and your attention.

Antoine.

----- Message d'origine ----
De : Carl Franks <[EMAIL PROTECTED]>
À : "HTML Form Creation, Rendering and Validation Framework" 
<[email protected]>
Envoyé le : Vendredi, 30 Mai 2008, 16h55mn 43s
Objet : Re: [html-formfu] Redirection after an error

2008/5/29  <[EMAIL PROTECTED]>:
> Hello,
>
> I have a web page splitted into 3 tabs. I have a form on the first tab. On 
> the second tab I display a list of object from a table. I can add object in 
> the second tab with FormFu and I redirect to this second tab after the 
> validation (here :  http://localhost:3000/person/view/1#tab2 ). It works fine.

Hi Antoine,

I'm guessing you're using a JS library to fake tabs within a single
page, but you don't explain whether the content for the tabs comes
from the original html file, or whether it loads a new url for each
tab.

> And I fill my form in the first tab. If my form isn't full fill, i get this 
> message : "This field is required". But i'm redirect from the prefious url : 
> the second tab. I suppose this is because the default FormFu behavior is to 
> redirect to the previous url in case of error. To avoid this problem I add 
> this line to my controller :

HTML-FormFu doesn't know anything about redirects - that's purely
dependant on your web-framework.
I'm guessing your form is using the same URL for it's "action"
attribute as is used to display the form - that would explain this
behaviour.

>        if ($form->submitted && $form->has_errors) {
>                
> $c->response->redirect($c->uri_for("/person/view/$id_person#tab1")); 
> $c->detach;
>        }

If you want to display errors, you can't do a redirect - as that makes
the client's browser make a new request to to the server, and the
previously submitted data is lost.
I normally just do this (with Catalyst):

sub foo {
    my ( $self, $c ) = @_;

    my $form = $self->stash->{form};

    if ( $form->submitted_and_valid ) {
        # no errors - do processing stuff
    }

    # if there are errors, it'll just fall through to here, and
redisplay the form
    return;
}

Carl

[...]


__________________________________________________
Do You Yahoo!?
En finir avec le spam? Yahoo! Mail vous offre la meilleure protection possible 
contre les messages non sollicités 
http://mail.yahoo.fr Yahoo! Mail

_______________________________________________
HTML-FormFu mailing list
[email protected]
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu

Reply via email to