Using form_remote_tag in an helper

Hello,

On one of my pages I’ve got a button which should do various stuff based
on some params passed to the page (and some retrieved from the session).

I was doing it fine using an helper :

def action_button product
if logged_in?
button_to “Already added!”,{:action=>:show, :id=>product},
elsif @cart.items.include? product
button_to “Already
added!”,{:controller=>‘store’},{:disabled=>true}
else
button_to “Add to cart”, {:action=>:add_to_cart, :id=>product}
end
end

But now I’d like to start using some eye-candy effects with Ajax. So I
tried to write down this :

def action_button product
if logged_in?
button_to “Already added!”,{:action=>:show, :id=>product},
elsif @cart.items.include? product
button_to “Already
added!”,{:controller=>‘store’},{:disabled=>true}
else
to_return = ‘’
form_remote_tag :url => {:action=>:add_to_cart,:id=>product} do
to_return += submit_tag “Add to cart”
end
to_return
end
end

But it didn’t work. Turns out that “form_remote_tag” needs to call
_erbout which is only defined in the view, but not in the helpers … Do
you know how I could fix my problem (without putting too much stuff in
my views) ?

Thanks a lot

On 10/5/07, Stefano G. [email protected] wrote:

else

you know how I could fix my problem (without putting too much stuff in
my views) ?

Don’t use a block with form_remote_tag in this case. You want
something like this:

form_remote_tag(:url => …blah…) + submit_tag(‘Add to cart’) +
end_form_tag

Thanks, it works perfectly

Any ideas on how to do this now that end_form_tag is deprecated?

Thanks!

On Oct 6 2007, 6:18 am, Stefano G. <rails-mailing-l…@andreas-

bhbrinckerhoff wrote:

Any ideas on how to do this now that end_form_tag is deprecated?

Thanks!

On Oct 6 2007, 6:18 am, Stefano G. <rails-mailing-l…@andreas-

Hi,

I have a scenario wherein i have opened a javascript popup window, now i
want the user to do some actions in that window, and now the form from
the window is submited, on submit i call a method that does the server
side handling and then on success i call the window.close and now on
complete i am trying to invoke another ajax call to update a dom element
in the main window.
My code looks like this
<%= form_remote_tag :method=>‘post’, :url=>{:action =>‘add_from_pop_up’,
:count => count},
:success => “window.close();”,
:complete => “javascript:test(count)”%>

and the javascript fcn is
function test(count)
{
qs = “count=”+ count
new Ajax.Request(’/reporting/update_div’, {parameters:qs,
asynchronous:true, evalScripts:true});
return false;
}

Any suggestions on how to invoke this javascript method to update a DOM
element.

Neha