`

rails级联

阅读更多
这是一个关于省份和城市的级联操作,当选择省份的时候,省份的状态发生改变,调用provincechange()函数,取得省份ID,并调用application.js的ajax代码,将省份id送到city控制器中,取得所在省份的所有城市并返回,showResponse()函数接受返回结果,并将城市属性结果发送到city.rhtml由provincechange()函数接收,进行相应的显示

    ruby 代码

这是 city_controller.rb
  1. def cityByprovince      
  2.    province_id  = params[:province_id ]          
  3.    @cities = City.find(:all ,:conditions =>["province_id  = ?", province_id ],:order => "orderby")      
  4.     render :text => @bacities.to_json          
  5. end    
  6. def index      
  7.   @provinces = Province.find(:all)      
  8. end    

    js 代码

    application.js

  1. //省份城市级联      
  2. function chinacity(province_id,citycon){      
  3.     var showResponse=function(transport)      
  4.     {         
  5.         var json = eval(transport.responseText);       
  6.         $(citycon).options.length=1;      
  7.         for(var i=0;i
  8.             var oNewNode=new Option();      
  9.             oNewNode.value=json[i].attributes.id;      
  10.             oNewNode.text=json[i].attributes.city;      
  11.             $(citycon).options.add(oNewNode);      
  12.         }      
  13.     }      
  14.           
  15.     var myAjax = new Ajax.Request(      
  16.         '/city/cityByprovince',      
  17.         {      
  18.             method: 'get',      
  19.             requestHeaders:{Accept:'application/json'},      
  20.             parameters:'province_id='+province_id,      
  21.             onComplete: showResponse      
  22.         }      
  23.     );      
  24. }     
xml 代码
这是 city.rhtml
  1. <td>省份td>  
  2. <td>  
  3.    <%=   
  4.       select("user",'province_id',@provinces.collect{|p|[p.province,p.id]},options = {:include_blank => true},html_options = {:onchange =>"provincechange()"})   
  5.     %>  
  6. td>  
  7. <td>城市:td>  
  8. <td>  
  9.     <%=   
  10.     select("user",'city_id',options = {:"--请选择"=>"0"})   
  11.     %>  
  12. td>  
  13. <script type="text/javascript">
  14.  provincechange=function()
  15.  {
  16.    chinacity($("user_province_id").value,"user_city_id");  
     }
  17. </script>
分享到:
评论

相关推荐

    simple_flash:I18n在Rails中闪烁

    I18n在Rails中闪烁。 安装 将此行添加到您的应用程序的Gemfile中: gem "simple_flash", "~&gt; 1.0" 然后执行: $ bundle 用法 SimpleFlash将两个辅助方法添加到您的控制器: redirect_to_with_success和redirect_...

    Ruby-Foreigner一个外键助手用于在迁移时添加和删除外键约束

    例如,可以设置`on_delete: :cascade`来实现级联删除,或`index: true`来创建对应的索引。 5. **版本兼容性**: Foreigner库保持与Rails的兼容性,所以即使你正在使用较旧或较新的Rails版本,也能顺利集成并使用。...

    prince-13.4-macos.tar.gz prince: 13.4

    级联样式表(CSS) JavaScript / ECMAScript JPEG,PNG,GIF,TIFF PDF输出 书签,链接,元数据 加密和文件安全 字体嵌入和子集 PDF附件 轻松整合 PHP和Ruby on Rails Servlet的Java类 .NET for C#和ASP...

    prince-13.5-macos.tar.gz prince: 13.5 将HTML转换为PDF

     级联样式表(CSS)  JavaScript / ECMAScript  JPEG,PNG,GIF,TIFF  书签,链接,元数据  加密和文件安全  字体嵌入和子集  PDF附件  PHP和Ruby on Rails  Servlet的Java类  .NET for C#和...

    react-base:React基

    该项目是通过引导的。 您将在下面找到一些有关如何执行...Ruby on Rails 在开发中代理API请求 配置代理后出现“无效的主机头”错误 手动配置代理 配置WebSocket代理 在开发中使用HTTPS 在服务器上生成动态&lt;met

    smstools:一组Ruby和JavaScript类,以帮助进行SMS消息处理

    级联检测和级联的邮件部分计数。 以下内容只能在使用Ruby的服务器上完成: 将UTF-8字符串转换为GSM 7位编码,反之亦然。 检测是否可以用GSM 7位编码安全地表示UTF-8字符串。 以GSM 7位编码检测双字节字符。 ...

    Laravel开发-poignant

    "Poignant"扩展的出现,无疑让那些熟悉Ruby on Rails(RoR)的开发者在转向Laravel时感到更为得心应手。它借鉴了RoR的一些优秀实践,如ActiveRecord的便利特性,同时保持了Laravel的简洁和强大。 在实际应用中,...

    Ruby-Ancestry将ActiveRecord模型组织成一个树状结构

    在使用Ancestry的过程中,需要注意的是,由于`ancestry`列的更新可能导致级联更新,因此在进行大量修改时要谨慎,避免引起性能问题。此外,对于复杂的树操作,如重建树或检查循环引用,Ancestry也提供了相应的辅助...

    一款基于python语言的Web开发框架+源代码+文档说明

    1. Ruby不再需要新的WEB开发框架,Rails统治了一切。 2. PHP没有多线程,对于后台数据处理有些吃力。 3. Java其实非常好,但不是脚本,仅此而已。 ##开发这个框架的目的: 1. 现有框架如Django, SQLAlchemy无法...

    Castle ActiveRecord 2.0

    这个框架是 ActiveRecord 模式的一个实现,灵感来源于 Ruby on Rails 中的 ActiveRecord。在 Castle ActiveRecord 2.0 版本中,开发者可以更高效地管理数据库操作,而无需编写大量的 SQL 代码。 **1. Castle ...

    castle ActiveRecord 源代码

    ActiveRecord模式源于Ruby on Rails,其核心思想是将数据库表与业务对象绑定,每个对象都代表一个数据库记录,并且包含操作这些记录的方法。这种模式简化了数据访问逻辑,使得开发者可以专注于业务逻辑的实现。 在...

    noar:NodeJS ActiveRecord

    优雅的api(最好的Rails ActiveRecord,Laravel Eloquent等) 在配置上使用约定 模型验证 事务(基于异步钩子,因此您无需将代码包装到回调中) 基于knex.js(因此您拥有knex查询构建器的所有功能) 声明范围,...

    emergency-leave-app:适用于公民咨询兰开夏郡西部的应用程序,用于管理紧急请假请求

    开发者可能结合了CSS(级联样式表)和JavaScript来实现交互性和视觉设计,创建出用户友好的界面。对于这样的应用程序,HTML5可能是首选版本,因为它提供了更多的功能和兼容性,包括本地存储、离线工作流以及多媒体...

    proyectoviajes

    在更深入的技术层面上,项目可能还结合了CSS(级联样式表)来实现视觉样式和布局的控制,以及JavaScript来处理用户交互和动态更新内容。此外,考虑到社交网络的功能,可能会使用AJAX(异步JavaScript和XML)技术来...

    Login-and-Signup:专为DCC项目

    这些消息通常用CSS(级联样式表)来格式化,以确保视觉效果一致。 6. 用户体验:考虑添加记住我(Remember Me)选项,使用户不必在每次访问时都输入密码。还可以使用HTML5的`autofocus`属性自动聚焦第一个输入框,...

Global site tag (gtag.js) - Google Analytics