Hello - I’m trying to use a form_remote_tag to make a submit button to
fire off an Ajax call. When I add this form_remote_tag code I don’t
see a submit button where there should be one.
I’m following the example given in the Agile Web D. book
starting on page 122.
The code I’m using as follows
<% form_remote_tag :url => { :action => :add_to_cart, :id => product }
do %>
<%= submit_tag “Add to Cart” %>
<% end %>
I also have enabled the javascript_include_tag :defaults like this
<%= javascript_include_tag :defaults %>
Any ideas why the button wouldn’t show up?
Thanks,
Clem
Clem R. wrote:
Hello - I’m trying to use a form_remote_tag to make a submit button to
fire off an Ajax call. When I add this form_remote_tag code I don’t
see a submit button where there should be one.
I’m following the example given in the Agile Web D. book
starting on page 122.
The code I’m using as follows
<% form_remote_tag :url => { :action => :add_to_cart, :id => product }
do %>
<%= submit_tag “Add to Cart” %>
<% end %>
form_remote_tag =>
http://caboo.se/doc/classes/ActionView/Helpers/PrototypeHelper.html#M005162
This tag also has a non-block form.
Does that work ?
Alan
Clem,
Your code needs to look like this:
<%= form_remote_tag :url => { :action => :add_to_cart, :id => product }
do %>
<%= submit_tag “Add to Cart” %>
<%= end_form_tag %>
The <% … %> tags will evaluate the code between them without
outputting the result into the HTML. The <%= … %> tags, on the other
hand, will output the result.
Hope that helps,
Matt Buck
Ok - it must be just the version of rails I was running:
this the the version that worked for me:
<%= form_remote_tag :url => { :action => :add_to_cart, :id => product }
%>
<%= submit_tag “Add to Cart” %>
<%= end_form_tag %>
Thanks so much for your help!
Clem,
Your code needs to look like this:
<%= form_remote_tag :url => { :action => :add_to_cart, :id => product }
do %>
<%= submit_tag “Add to Cart” %>
<%= end_form_tag %>
The <% … %> tags will evaluate the code between them without
outputting the result into the HTML. The <%= … %> tags, on the other
hand, will output the result.
Hope that helps,
Matt Buck
Not exactly true…
On 1.2 RC1 or edge, the proper syntax for forms is:
<% form_tag :action => ‘foo’ do %>
<%= submit_tag ‘Foo!’ %>
<% end %>
If you combine this block form with the <%= %> and it bombs because it
does not return a valid ruby statement, causing a syntax error.
If you are not on edge rails, or RC1, then use the non block form_tag:
<%= form_tag :action => ‘foo’ %>
<%= submit_tag ‘Foo!’ %>
<%= end_form_tag %>
I suspect you are using the block form with a version of rails that does
not support it. This makes whatever is inside your form tag simply
disappear. So either use the non-block form_tag, or switch to RC1 or
edge rails.
Matt Buck wrote:
Clem,
Your code needs to look like this:
<%= form_remote_tag :url => { :action => :add_to_cart, :id => product }
do %>
<%= submit_tag “Add to Cart” %>
<%= end_form_tag %>
The <% … %> tags will evaluate the code between them without
outputting the result into the HTML. The <%= … %> tags, on the other
hand, will output the result.
Hope that helps,
Matt Buck
Not exactly true…
On 1.2 RC1 or edge, the proper syntax for forms is:
<% form_tag :action => ‘foo’ do %>
<%= submit_tag ‘Foo!’ %>
<% end %>
If you combine this block form with the <%= %> and it bombs because it
does not return a valid ruby statement, causing a syntax error.
If you are not on edge rails, or RC1, then use the non block form_tag:
<%= form_tag :action => ‘foo’ %>
<%= submit_tag ‘Foo!’ %>
<%= end_form_tag %>
I suspect you are using the block form with a version of rails that does
not support it. This makes whatever is inside your form tag simply
disappear. So either use the non-block form_tag, or switch to RC1 or
edge rails.