[Dancer-users] Conditional Matching
David Precious
davidp at preshweb.co.uk
Fri Jan 14 12:42:52 CET 2011
On Thu, 2011-01-13 at 21:43 +0000, ambs wrote:
> Hello
>
> I have a form with two submit buttons. I do not want to have js to
> detect what submit button was used to redirect the script for two
> different actions.
>
> Looking to the documentation I found out conditional matching.
>
> So, my doubt is: is there any chance on using conditional matching to
> detect what submit button was used? (basically, is there any way to
> access to the CGI parameters on the conditional matching portion of routes?)
I'd be inclined to give them different names, e.g.:
<form ... action="/dosomething">
...
<input type="submit" name="foo" value="Do Foo" />
<input type="submit" name="bar" value="Do Bar" />
</form>
and have them submit to a route which calls a different sub depending on
the button clicked, e.g:
post '/dosomething' => sub {
if (params->{foo}) {
do_foo();
} else {
do_bar();
}
};
Alternatively, it seems a touch hackish, but you could have multiple
routes which pass if the right button wasn't clicked, e.g.:
post '/dosomething' => sub {
pass unless params->{foo};
# Do some foo here
};
post '/dosomething' => sub {
pass unless params->{bar};
# Do some bar here
};
Cheers
Dave P
--
David Precious <davidp at preshweb.co.uk> ("bigpresh")
http://www.preshweb.co.uk/
More information about the Dancer-users
mailing list