In my noddy blog app I want to not have to scroll back down after deleting an entry. I first tried using Javascript scrollTop in the view, but I could not find a way of passing the value to the controller so that I could pass it back to the view. I hope an expert can describe what methods, if any, can be used to pass values from a view to an action (without using a form). This seems to be poorly documented. So I decided to use anchors instead (which is probably the correct way). Each blog entry in the view gets an id=X attibute (X = 1,2,3,etc). If I delete entry 4 then I want to scroll to entry 4-1=3. In the index view:- <% for comment in @comments %> <% return_to=return_to+1 %> <div class="comment" id="<%= return_to %>"> ... <%= link_to ''Delete'', comment_path(:id => comment.id, :return_to => return_to-1, :post_id => @post),:method => :delete %> Hovering over the delete link of entry 4 I see the following URL displayed at the bottom of FireFox:- http://localhost:3000/comments/47?return_to=3&post_id=12 In the destroy action I redirect_to index and specify an :anchor parameter:- format.html { redirect_to :action => ''index'', :anchor => params[:return_to],:post_id => params[:post_id] } The :anchor parameter is automatically propagated thru the :index action as it appears in the browser''s URL field. :- http://localhost:3000/comments?post_id=12#3 Unfortunately the browser does not actually scroll down to the specified anchor. However if I then hit Enter on the URL it does jump to the anchor!! Does anyone know how to get anchors working properly? PS as you can see I am using REST but probably not to the full extent, since I have post_id=23 when in fact I should probably have something like/post/23/comment/56. but that is another issue Peter --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
''3'' isn''t a valid ID field in XHTML. You need to prefix it with some non-numerical string. e.g.: "http://localhost:3000/comments?post_id=12#_3" for an element with an attribute: id="_3" Or, better: #post_3 for id="post_3" Does that fix it? On Oct 15, 9:00 am, Peter <peter.cutt...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> In my noddy blog app I want to not have to scroll back down after deleting > an entry. > > I first tried using Javascript scrollTop in the view, but I could not > find a way of passing the value to the controller so that I could pass > it back to the view. I hope an expert can describe what methods, if > any, can be used to pass values from a view to an action (without > using a form). This seems to be poorly documented. > > So I decided to use anchors instead (which is probably the correct way). > Each blog entry in the view gets an id=X attibute (X = 1,2,3,etc). If I > delete entry 4 then I want to scroll to entry 4-1=3. > > In the index view:- > > <% for comment in @comments %> > <% return_to=return_to+1 %> > <div class="comment" id="<%= return_to %>"> > ... > <%= link_to ''Delete'', comment_path(:id => comment.id, > :return_to => return_to-1, :post_id => @post),:method => :delete %> > > Hovering over the delete link of entry 4 I see the following URL displayed > at the bottom of FireFox:- > > http://localhost:3000/comments/47?return_to=3&post_id=12 > > In the destroy action I redirect_to index and specify an :anchor parameter:- > > format.html { redirect_to :action => ''index'', :anchor => > params[:return_to],:post_id => params[:post_id] } > > The :anchor parameter is automatically propagated thru the :index action > as it appears in the browser''s URL field. :- > > http://localhost:3000/comments?post_id=12#3 > > Unfortunately the browser does not actually scroll down to the specified > anchor. > > However if I then hit Enter on the URL it does jump to the anchor!! > > Does anyone know how to get anchors working properly? > > PS as you can see I am using REST but probably not to the full extent, > since I have post_id=23 when in fact I should probably have something > like/post/23/comment/56. but that is another issue > > Peter--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Oops, replied to author instead of thread. I believe this is caused by use of a numeric ID, which is invalid XHTML. Use ids that begin with a letter, or an underscore. On Oct 15, 9:00 am, Peter <peter.cutt...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> In my noddy blog app I want to not have to scroll back down after deleting > an entry. > > I first tried using Javascript scrollTop in the view, but I could not > find a way of passing the value to the controller so that I could pass > it back to the view. I hope an expert can describe what methods, if > any, can be used to pass values from a view to an action (without > using a form). This seems to be poorly documented. > > So I decided to use anchors instead (which is probably the correct way). > Each blog entry in the view gets an id=X attibute (X = 1,2,3,etc). If I > delete entry 4 then I want to scroll to entry 4-1=3. > > In the index view:- > > <% for comment in @comments %> > <% return_to=return_to+1 %> > <div class="comment" id="<%= return_to %>"> > ... > <%= link_to ''Delete'', comment_path(:id => comment.id, > :return_to => return_to-1, :post_id => @post),:method => :delete %> > > Hovering over the delete link of entry 4 I see the following URL displayed > at the bottom of FireFox:- > > http://localhost:3000/comments/47?return_to=3&post_id=12 > > In the destroy action I redirect_to index and specify an :anchor parameter:- > > format.html { redirect_to :action => ''index'', :anchor => > params[:return_to],:post_id => params[:post_id] } > > The :anchor parameter is automatically propagated thru the :index action > as it appears in the browser''s URL field. :- > > http://localhost:3000/comments?post_id=12#3 > > Unfortunately the browser does not actually scroll down to the specified > anchor. > > However if I then hit Enter on the URL it does jump to the anchor!! > > Does anyone know how to get anchors working properly? > > PS as you can see I am using REST but probably not to the full extent, > since I have post_id=23 when in fact I should probably have something > like/post/23/comment/56. but that is another issue > > Peter--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I tried changing the IDs from id="1" to id="anchor_1" in order to follow xhtml better. It id not help. (the ids are on DIVs by the way) I should reiterate that the anchors do work OK when I hit Enter on the URL (after an unsuccessful test)(for both id formats) This suggest that there is nothing wrong with the anchors in the xhtml page and it is more likely something about the redirect_to or firefox that is not quite right Peter --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Peter wrote:> I tried changing the IDs from id="1" to id="anchor_1" in order to follow > xhtml > better. It id not help. (the ids are on DIVs by the way) > > I should reiterate that the anchors do work OK when I hit Enter on the > URL > (after an unsuccessful test)(for both id formats) > > This suggest that there is nothing wrong with the anchors in the xhtml > page > and it is more likely something about the redirect_to or firefox that is > not > quite right > > Peterit isn''t a ruby on rails issue; it''s a browser/standards issue. (either you''re having some clashes between existing div''s, or the xhtml isn''t valid, or ...) SO, the best reccomendation is to validate the page and get rid of errors/warnings (i doubt u don''t have any), you might bump into something that will activate a trigger thus leading u to the way to solve the problem - http://www.w3.org/QA/Tools/ hope it helps etc -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi thanks for the suggestion to clean up the xhtml. This did not fix the problem but a nother of other ones instead, I fixed the main problem by disabling my old javascript attemt to scroll to the correct position using scrollTop. so a false alarm on my part. sorry anchors now work! Peter --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---