Hello everyone, I’m a newbie at Ruby on Rails. I spent nearly two days
of the Memorial Day weekend stumbling upon making Ajax working in Rails.
At this point, I’m so exhausted and hope that I can get some help to
move forward. Initially, I tried the Ajax approach offered by Rails but
did not work, so I turned to jQuery. Basically, I want to submit a
simple form as follows:
<%= form_tag("/main/contact", :method => “post”, :id => “contactForm”)
do %>
Name: <%= text_field_tag(:name) %>
Message: <%= text_area_tag(:message) %>
<%= submit_tag “Send” %>
<% end %>
And here’s my Ajax code in jQuery:
$("#contactForm").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* clear result div */
$("#result").html(’’);
/* get values from elements on the page: */
var values = $(this).serialize();
/* Send the data using post and put the results in a div */
$.ajax({
url: “/main/contact”,
type: “post”,
data: values,
success: function(){
$("#result").html(response.name + “; " + response.message);
},
error:function(){
$(”#result").html(‘there is error while submit’);
}
});
});
And here’s my main controller:
def contact
name = params[:name]
message = params[:message]
respond_to do |format|
format.html # contact.html.erb
format.json {
render :response => {:name => name, :message => message}
}
end
end
I just want to test to see if user’s name and message can be submitted
successfully via Ajax, and if so, insert the submitted values (name &
message) in the
and let me know where I did wrong. I appreciate any help. Thanks a
lot.