Rails——下拉框二级联动实现省、市选择

1,在layouts中

添加  <%= javascript_include_tag 'prototype' %>

2,在views中

添加 

<%  members = City.find_by_sql("select * from cities where cityid like '%0000'").collect { |c| [c.name,c.cityid] }%>
<%=  select  '', :abc,members,{:include_blank => '--请选择--'},
              { "onchange" => remote_function(:with => "'abc='+value",:update => 'next_select', :url => { :action => :select_with_ajax } ) }
 %>

 

<span id='next_select'></span>

 

注意:select中有四个参数,第一个参数为空,第二个参数设置了一个名为abc的变量,以便把选择到的省的ID传到下一级的select中。

 

3,在controller中

添加

def select_with_ajax
    @city = City.find_by_sql("select * from cities where (cityid mod 100 =0 )and (cityid div 10000 = #{params[:abc]} div 10000 ) and (cityid != #{params[:abc]})").collect { |city| [city.name, city.cityid] }

    render(:layout => false)
  end

 

4,在views中

新建select_with_ajax.erb文件

然后添加  <%= select( :address,:city_id, @city) %>

 

 

总:二级联动菜单这样写,目的是把第二个select中选择的市的ID传到表的相应字段中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值