JQUERY.AJAX

通过jquery .ajax函数异步保存数据

实际例子:

_form.html.erb中:

'>

对input接受的数据进行保存, 传data-id自定义属性的意思是保存f.id的值,以便jquery的.ajax函数的url属性时候用到

app.js中:

  $(".edit_position").focus(function(){

    $(this).css("background-color","#FFFFCC");

  });

  $(".edit_position").blur(function(){

    $(this).css("background-color","#D6D6FF");

    var rooms_subject_id = $(this).attr("data-id");

    $.ajax({

      type: 'put',

      url: '/manage/rooms_subjects/'+ rooms_subject_id,

      cache: false,

      data:{

        position: $(this).val()

      },

      success:function(data){    

             alert("修改成功!");              

             window.location.reload();      

      }

    });

  });

focus监听鼠标焦点input事件,blur监听鼠标input失去焦点事件,.ajax由鼠标失去焦点来触发, rooms_subject_id由attr函数取到自定义的data-id属性的值为url的:id,也就是选定的room_id, 事件类型为put, url为处理该数据库存储信息的action的url, 注意如果url为/dsfa/fdsa/:id, 则要在html中自定义属性传递:id的值进行+号拼接,data中是传递的数据position对应action中获取数据的params[:position], $(this).val()为获取class的.edit_position的input内容, success为成功后的函数进行window.locaton.reload();刷新页面

room_subjects_controller.rb中:

def update

@rooms_subject = RoomsSubject.find(params[:id])

@rooms_subject.update(position: params[:position])

render nothing: true

end

对ajax的data中传递来的数据params[:position]进行数据的持久化

render nothing: ture是返回nothing否则action执行之后必须重定向到一个页面或者展示数据有自己同名.html.erb对应的页面,ajax并没由返回页面只是保存数据所以要render nothing: true

)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值