笔记2

昨天,已经弄好了项目的显示和添加模块,今天继续完成了项目职能的添加及职能负责人的添加
1、分类的select选择标签
需求:在选择职能名称时,有大类和小类之分,为了更方便用户选择,需要一个可以分类的选择框;
解决方法:在helper中定义一个函数,用改函数按类型生成select的html代码,在将html代码插入到视图代码中即可;具体实现代码为:

def role_selector(obj,name,value)
html = "<select name='#{name}' id='#{name}' size='10'>"
role_groups = RoleGroup.find(:all)
for role_group in role_groups
html += "<option value=''>#{role_group.name}</option>"
for role in role_group.project_roles
sel = (role.id == value.to_i ? " selected='selected'" : "")
html += "<option value='#{role.id}' #{sel}>   #{role.name}   </option>"
end
end
html += "</select>"
end

2、rails中ajax的应用
在添加职能时,对于不同的职能都有不同的公司与之想对应,不同的公司又有不同的联系人;
其具体过程为:针对某个职能选择某个公司,可先输入改公司名称,再进行搜索(这个过程需要用到一个form_remote_tag来处理);
搜索到的公司会由一个select标签存起来,在其中选择相应的公司,同时,与该公司对应的联系人也会出现在另一个select标签中(该过程需要在select标签的onchange事件中
添加ajax来处理,以获得联系人);

公司搜索的ajax代码为:

<%= form_remote_tag :update=>"add_form",:url=>{:action=>"firm_select"}%>
<input type="text" name="firm_name" size="20">
<input class="button" type="submit" value="搜索并添加公司">
<%= form_tag%>
注:以上form_remote_tag标签的结束标签已由原来的end_form_tag改为form_tag;

onchange时间中的ajax实现:

<%=select_tag "firm_id",options_for_select([["",""]]+@firms.map{|f| ["#{f.name}",f.id]}),
{:οnchange=>"new Ajax.Updater('add_contact','/project/contact_select?firm_id='+this.value,{asynchronous:true})"}%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值