0

我如何拥有我的 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 上发送回的消息,以便我可以将<p>文本设置为User Created这些行的长文本。希望我说得通谢谢。

例如

def create
if user.save?
sendmessagebacksomethinglike('User Created')
end
end

我将如何发回消息以便我可以将它与(数据)一起使用?

4

2 回答 2

0

Try this for the JS,

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

and this for the controller action,

def create
  @item = Item.new(params)
  if @item.save
    render json: { message: "Successfully created." }.to_json, status: 201
  end
end
于 2013-03-11T21:16:29.563 回答
0

我经常遇到两件事。

:部分,:文本

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 %>

应用程序.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;

      });

});

路线.rb

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

do_controller.rb

def something

  render :text => 'did something'

end
于 2013-03-11T21:06:22.350 回答