如何发送AJAX请求并接收(数据)?

时间:2013-03-11 20:53:34

标签: jquery ruby-on-rails ajax ruby-on-rails-3

我如何拥有我的ajax功能

$(function() {
  $("form#new_user").click(function(e) { e.preventDefault();
      var dataString = $('#new_user').serialize();


     $.ajax({
      type: 'POST',
      url: '/user',
      data: dataString,
      success: function(data) { 
        $('#alertt').text(data);
        $('#alertt').fadeIn().delay(2000).fadeOut('slow');
      }
      });
      return false;

然后在php方面它只是做它的事情然后json_encode(whatever)所以当它取得成功时:它可以将数据放入<p>像Blah成功

我的表格:

<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post">

-

但是现在在Rails上,我假设设置是相同的,但数据指向url: '/users'但是如何设置要在Rails上发回的消息,以便我可以设置{{ 1}}文字到<p>或者那些长的文字。希望我有理由感谢。

e.g。

User Created

我如何发回消息以便将其用于(数据)?

2 个答案:

答案 0 :(得分:0)

我经常遇到两件事。

:partial,:text

def create

    if user.save?

    render :text => "User Created!"

    end

end


$.ajax(
  success: function(data) {    
    $('#alertt').text(data);    
  }
  });
  return false;

大多数情况下,我会在控制器中设置几个实例变量之后渲染一部分,并使用div将其部分绘制在JS中的HTML上。别介意。 您要找的是渲染:文字

我认为这个模型可以帮到你,

查看

<%= form_tag url_for(:controller => "do", 
                     :action => "something"),
                     :id => 'do',:method => 'post'  do %>

<% end %>

<强>的application.js

$(function() {

     $("form#do").submit(function() {  

      var data = $('form#do').serialize();

       $.post('/do_something',data, function(result){

        $("#done").hide().html(result).fadeIn(3000);

        });        

       return false;

      });

});

<强>的routes.rb

match '/do_something' => "do#something" #routing do_something to do controller, something action.

<强> do_controller.rb

def something

  render :text => 'did something'

end

答案 1 :(得分:0)

尝试使用JS,

$.ajax({
  type: 'POST',
  url: '/user',
  data: dataString,
  dataType: "json",
  success: function(data) {
    $('#alertt').text(data.message);
  }
});

这是控制器动作的,

def create
  @item = Item.new(params)
  if @item.save
    render json: { message: "Successfully created." }.to_json, status: 201
  end
end