Getting js variable value or form field value in js.rjs file

Hi all

I have a file "index.js.rjs" where i only want to run the code in it
(which updates the contents of a div in typical ajax style) if a
variable i have from params is the same as a value of one of the form
fields on the page (which has the id 'search_timestamp'). I can't work
out, though, how to get that value in my js.rjs file. Something like
this

if @timestamp.to_s == page['search_timestamp'].val()
  #my code
end

I feel like this should be easy but can't figure it out. Can anyone
show me how? I've tried just using page.call with some jquery but again
can't work out how to get the resultant value back into my ruby code.
I'm using jquery and jrails in my app in case that's relevant.

thanks, max

Hi all

I have a file "index.js.rjs" where i only want to run the code in it
(which updates the contents of a div in typical ajax style) if a
variable i have from params is the same as a value of one of the form
fields on the page (which has the id 'search_timestamp'). I can't work
out, though, how to get that value in my js.rjs file. Something like
this

if @timestamp.to_s == page['search_timestamp'].val()
#my code
end

I feel like this should be easy but can't figure it out. Can anyone
show me how? I've tried just using page.call with some jquery but again
can't work out how to get the resultant value back into my ruby code.
I'm using jquery and jrails in my app in case that's relevant.

At the point that your rjs file is run you can't get the value of
anything on user's page, because it's running on your server, not the
user's browser. I wrote a little about this a while ago at
http://www.spacevatican.org/2008/5/26/conditional-rjs-explained

Fred

Frederick Cheung wrote:

#my code
end

I feel like this should be easy but can't figure it out. �Can anyone
show me how? �I've tried just using page.call with some jquery but again
can't work out how to get the resultant value back into my ruby code.
I'm using jquery and jrails in my app in case that's relevant.

At the point that your rjs file is run you can't get the value of
anything on user's page, because it's running on your server, not the
user's browser. I wrote a little about this a while ago at
http://www.spacevatican.org/2008/5/26/conditional-rjs-explained

Fred

Hi Fred - thanks, i should have known that. Looking at your great blog
post, i adapted this approach:

  page << "if($('some_div').visible()){"
  page['some_div'].replace :partial => 'some_partial'
  page << '}else{'
  page.insert_html :after, 'something_else', :partial => 'header'
  page << '}'

like so:

  page << "if($('#search_timestamp').val() == #{params[:timestamp]}){"
    page.replace_html "questions", :partial => "questions/questions"
    page.replace "flashes", :partial => "common/flashes"
  page << "}"

and that's worked a treat. Obviously it means i'm still generating the
html from the partials every time, whether use it or not, but i think
that's the best that can be done here.

thanks agaain, max