Re: redirect to anchor link for form validation

2010-03-20 Thread cricket
To include anchor in a URL, provide the id with the '#' key in the
URL. If your anchor ID is 'foo', you'd use something like:

'controller' = 'xxx', 'action' = 'yyy', '#' = 'foo'

... in the form action. You need to specify it there, and not in a
controller redirect, because the page is not reloaded when there are
validation errors. The form submits to the same URL, and, if there are
NO errors, the request is redirected. Otherwise, the view for that URL
is rendered as requested, only this time displaying validation
errors..

OT FYI: You can use any HTML element with id=foo; there's no need to
use an A tag (I believe that that use of A is deprecated in HTML5).


On Mar 19, 11:45 pm, Johnny Ferguson hyperfle...@gmail.com wrote:
 Hi,

 I've successfully set up a contact form in cakePHP, and when
 validation rules in my model don't pass, the form is reloaded with all
 my validation errors displayed properly. That battle was won :)

 Now for the tricky part.

 Can anyone think of a way to not only have the form page reload with
 error messages, but jump to an anchor link at the top of the form if
 errors are present? I'm sure I could use javascript for this, but as
 it stands I can't count on users having javascript enabled. Currently
 when the form reloads with error messages in place, users have to
 scroll down from the top of the page, and I see this as a slight
 problem.

 Obviously CakePHP is smart enough to redirect to an appropriate URL
 when validation fails, all I need to do is add #myAnchor to the end of
 that URL somehow. Any ideas?

 I've thought of adding a line to my beforeFilter that says something
 like

 1. if we're visiting the form page
 2. and if some error flag variable is set
 3. catch the URL somehow
 4. Add the anchor to the end

 But I'm not sure on the specifics of how I'd go about this, and as
 this filter would run before the any page in the controller runs, I
 have concerns about efficiency. Any ideas?

 Thanks in advance for your input.

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en

To unsubscribe from this group, send email to 
cake-php+unsubscribegooglegroups.com or reply to this email with the words 
REMOVE ME as the subject.


redirect to anchor link for form validation

2010-03-19 Thread Johnny Ferguson
Hi,

I've successfully set up a contact form in cakePHP, and when
validation rules in my model don't pass, the form is reloaded with all
my validation errors displayed properly. That battle was won :)

Now for the tricky part.

Can anyone think of a way to not only have the form page reload with
error messages, but jump to an anchor link at the top of the form if
errors are present? I'm sure I could use javascript for this, but as
it stands I can't count on users having javascript enabled. Currently
when the form reloads with error messages in place, users have to
scroll down from the top of the page, and I see this as a slight
problem.

Obviously CakePHP is smart enough to redirect to an appropriate URL
when validation fails, all I need to do is add #myAnchor to the end of
that URL somehow. Any ideas?

I've thought of adding a line to my beforeFilter that says something
like

1. if we're visiting the form page
2. and if some error flag variable is set
3. catch the URL somehow
4. Add the anchor to the end

But I'm not sure on the specifics of how I'd go about this, and as
this filter would run before the any page in the controller runs, I
have concerns about efficiency. Any ideas?

Thanks in advance for your input.

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en

To unsubscribe from this group, send email to 
cake-php+unsubscribegooglegroups.com or reply to this email with the words 
REMOVE ME as the subject.