• 締切済み

rails3.0 プルダウンの連動について

ruby on railsにて開発を行っております。 web開発の経験はありますが、 rubyおよびrailsに関しては初心者です。 要件は以下の通りです。 A画面内でrenderにて部分テンプレートの構成となっております。 テンプレート内部にプルダウンを設け、プルダウンの連動により 読み込むテンプレートを切り替えていきたいと考えております。 現在collection_selectを用いてプルダウンを生成し、 onchangeにてremote_functionを呼び出すことで本機能を実装させようと考えておりますが、 テンプレートの切り替えがうまくいきません。 実装方法及び参考となるような情報をご教授いただければと思います。 よろしくお願いします。 環境 rails 3.0.7 ruby 1.9.2

  • Ruby
  • 回答数1
  • ありがとう数1

みんなの回答

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

回答がないので、 直接の回答ではありませんが、 ruby on rails(日本語) のメーリングリストに参加し、 そこで、質問をされてみてはいかがでしょうか。 私も、このメーリングリストを利用しています。 rails関連なら、このサイトよりも、もっとより専門的な部分に踏み込んだ 質問にも回答できる人がいるかと思います。 詳細は参考URLを参照ください。

参考URL:
http://wiki.fdiary.net/rails/

関連するQ&A

  • ruby on rails プルダウンの連動についてご質問します。

    ruby on rails プルダウンの連動についてご質問します。 ネットで検索して、試しているのですがうまくいきません。 まず、kaisha-code,kaisha-mei,bumon-code,bumon-mei(会社コードと部門コードがキー項目です) の項目をもつDBがあります。 別画面で、会社コードと部門コードのプルダウンの連動をしたいと考えています。 まず、会社コードを選択し、それに紐づく部門コードをプルダウンで表示したいさせたいのですが、うまくいきません。 また、プルダウンの表示は会社名、部門名で表示させます。 会社名を表示させるところまではいいのですが、連動の部分がうまくいかず、部門コードの参照がうまくいきません。 大変困っています。わかる方がいらっしゃいましたら、よろしくお願いいたします。

  • Rails javascriptが動かない

    Railsのフォームにプルダウンメニューを配置して、選択されるとjavascriptでアラートを 表示したいのですが、うまく動作してくれません。 どなたか、お詳しい方がいらっしゃいましたら、ご教授願います。 form.html.erb ------------------------------------------------------------------------------------------------------ <%= javascript_tag do %> $(function(){ //コースを選択する $("#course_id").change(function(){ window.alert("test!!"); }); }); <% end %> <%= form_for ・・・・・ <%= form.select :course_id, @courses %> <% end %> ------------------------------------------------------------------------------------------------------ 【環境】 Ruby 2.2.2 Rails 4.0.13 以上、宜しくお願いします。

    • ベストアンサー
    • Ruby
  • 2つのプルダウンを連動させる

    2つプルダウンがあったとき片方で選択した内容に応じもう一方のプルダウンの内容が 変更されるように以下のようなコードを書いてみました。 しかし、これだと1番目のプルダウンでAを選択した後、Bを選択しなおすと 2番目のプルダウンの選択肢には前回Aを選んだ時に表示されていた内容が 残ってしまいます。そこで 連動するプルダウンの内容を作成する処理(Forループの処理)の直前で  for (i=0; i<itemNum; i++) {   document.myForm.tableName.options[i] = new Option(null, null);  } という初期化処理を書いてみたのですが結果は同じでした。 解決するための何か良い方法はございますでしょうか。 <html> <head> <title>プルダウン連動サンプル</title> <script type="text/javascript"> table_name = [["10", "9", "8", "7", "6"], ["りんご", "メロン", "バナナ"], ["嵐"]]; function setMenuItem(n) { itemNum = table_name[n].length; // 項目数 //連動するプルダウンの内容を作成 for (i=0; i<itemNum; i++) { alert(table_name[n][i]); document.myForm.tableName.options[i] = new Option(table_name[n][i], table_name[n][i]); } //プルダウンの先頭を選択 document.myForm.tableName.options[0].selected = true; } </script> </head> <body onLoad="setMenuItem(0)"> <form name="myForm"> <select name="database" onChange="setMenuItem(this.selectedIndex)"> <option selected>A</option> <option>B</option> <option>C</option> </select> <select name="tableName"> </select> </form> </body> </html>

  • Rails プルダウンメニューを自動選択するには

    Ruby On Railsで開発を行っています。 select の構文は以下のようになっています。 <select class="searchable" id="fruitsu"> <option value="001">リンゴ</option> <option value="002">ミカン</option> <option value="003">イチゴ</option> <option value="004">バナナ</option> <option value="005">ブドウ</option> </select> 別のテキストフィールドに"001"と入力すると、上記のプリダウンリストの「001:リンゴ」 を選択できるようにjavascriptを以下のように実装しました。 しかし、プリダウンリストのリストを表示すると値は選択されているのですが、 表示はできませんでした。 表示するには、どのようにすれば良いのでしょうか? お忙しい中、大変申し訳ありませんが、教えて頂けないでしょうか。 【javascript】 $(function() { $('#fruitsuText').on('change', function() { $('#fruitsu').val($(this).val()); }); }); 以上、宜しくお願いいたします。

    • ベストアンサー
    • Ruby
  • Rails 3 での動的更新について

    Ruby on Rails 3 を利用してウェブ開発をしているのですが、Rails 2 の時に利用できた動的更新が出来なくて困っています。 今回の質問の動的更新とは、テキストフィールドなどに入力があるとそれを検知して、コントローラー内の処理を呼び出して結果をページの一部として表示する、というものです。 Rails 2 の時には以下のようにしていました。 <script language="JavaScript"> <!-- function ShowRule() { $("#show_value").load("/[コントローラー名]/[メソッド名]?[パラメーター]="+document.[フォーム名].[ポスト名].value); } //--> </script> 値を返したい部分に <div id="show_value"></div> を置き、入力を監視したい項目に :onclick => "ShowRule()" のオプションをつけていました。 同じように記述したのですが、Rails 3(というか jquery)だと上手く動きません。上記のような処理を jquery で行う方法をご教授ください。 よろしくお願い致します。

  • RailsのAjax送信されるタイミング

    Ruby on Rails で:remote => true設定時のデータ送信タイミングで困っています。 form_forタグに :remote => trueを指定しており、送信ボタンを押すと値をajaxで送信をするようにしています。 しかし、送信ボタンを押した瞬間に値が送信されるのではなく、ボタンを押して少し経ってから(長い時は2~3秒程度?仕様でしょうか)値が送信されます。 画面内に送信ボタンが2つ存在し、最初にボタンを押し実際に値が送信される前に別のボタンを押すと、2度ボタンを押したのに1回分の値しか送信されないといった問題が発生します。 そこでこの問題を回避するために、 1. 送信ボタンが押された瞬間に値が送信されるようにする 2. ボタン押下後に実際に値が送信されたかどうかを監視し、実際に送信されるまでは2度目以降のクリックを無効にする(ボタンをdisabledにする) のどちらかを実装したいと考えていますが、これらはrailsで実装可能なのでしょうか。

    • ベストアンサー
    • Ruby
  • 2つのプルダウンの連動に関して

    2つのプルダウンの連動に関して javascript の話になってしまうかと思われますが、教えて下さい。 2つのプルダウンを連動させたいと考えていますが、単純に決められた項目を初期値として 設定するようなプルダウンであれば問題なくできますが、テーブルから取得したデータをプルダウン にセットした後に制御を掛けたいと考えています。 以下のようなソースを活用できないか?と考えていますが、どのような方法があるでしょうか。。。。 《活用ソース》 <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE=JavaScript> <!-- function funcSubmit() { if (document.formMain.pref.selectedIndex == 0 && document.formMain.city.selectedIndex == 0) { window.alert("都道府県と市町村を選択してください"); return false; } else { return true; } } function funcMain(b) { if (document.formMain.pref.selectedIndex == 0) { document.formMain.city.length = 1; document.formMain.city.selectedIndex = 0; } else { if (b) { document.formMain.city.length = 1; document.formMain.city.selectedIndex = 0; } var city = cities[document.formMain.pref.selectedIndex - 1]; document.formMain.city.length = city.length + 1; for (var i = 0; i < city.length; i++) { document.formMain.city.options[i + 1].value = i; document.formMain.city.options[i + 1].text = city[i]; } } } ↓↓↓↓ ※これらの情報をテーブルから取得したデータとしたい。↓↓↓↓  var prefs = new Array("東京都", "大阪府", "愛知県", "千葉県");   var cities = new Array(); cities[0] = new Array("小平市", "町田市", "三鷹市"); cities[1] = new Array("大阪市", "豊中市"); cities[2] = new Array("名古屋市", "半田市"); cities[3] = new Array("千葉市", "市川市", "柏市"); // --> </SCRIPT> </HEAD> <BODY onLoad="funcMain(false)"> <FORM NAME=formMain METHOD=POST ACTION=result.asp onSubmit="return funcSubmit()"> <SELECT NAME="pref" onChange="funcMain(true)"> <OPTION VALUE="" SELECTED>(都道府県を選択してください) <OPTION VALUE="0">東京都 <OPTION VALUE="1">大阪府 <OPTION VALUE="2">愛知県 <OPTION VALUE="3">千葉県 </SELECT> <SELECT NAME="city"> <OPTION VALUE="" SELECTED>(市町村を選択してください) <OPTION VALUE=""> <OPTION VALUE=""> <OPTION VALUE=""> <OPTION VALUE=""> <OPTION VALUE=""> <OPTION VALUE=""> <OPTION VALUE=""> </SELECT> <INPUT TYPE=submit VALUE="登録"> </FORM> </BODY> </HTML>

    • ベストアンサー
    • PHP
  • 2つのプルダウンメニューを連動させてリンク先へ遷移

    2つのプルダウンメニューを連動させて、 ひとつ目のプルダウンメニュー内の条件にそれぞれ連動させた選択肢をふたつ目のプルダウンメニューで表示させ、 ふたつのプルダウンで選んだ項目に連動したリンク先へジャンプさせたいと考えております。 下記のソースで試した所、IE6ではOKでしたがFireFox、Safariでは ダメでした。(プルダウンじたいが表示されない) IE6と7、FireFox2と3、MacのSafari3で表示できるようにしたいので教えてください。 ちなみに私はHTMLレベルのスキルしかありませんのでできるだけ具体的に教えて頂けると助かります。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>テスト</title> </head> <body> ↓ここにプルダウンが入る<br> <script type="text/javascript"> var printf = document.write; RightListStr = ["選択してください","条件A","条件B"]; LeftListStr = [["選択してください","",""],["選択してください","条件A-1","条件A-2"],["選択してください","条件B-1","条件B-2"]]; URL = [["","",""],["","http://条件A-1リンク先.com","http://条件A-2リンク先.jp"],["","http://条件B-1リンク先.com","http://条件B-1リンク先.jp"]]; printf('<form name="MyForm"><select name="RightList" onChange="ChangeList(this);">'); for(var i = 0; i < RightListStr.length; i++) printf('<option>' + RightListStr[i]); printf('</select> <select name="LeftList" onChange="MoveURL(this)">'); for(var i = 0; i < LeftListStr[0].length; i++) printf('<option>' + LeftListStr[0][i]); pritnf('</select></form>'); function MoveURL(LeftObject){ var RightObject = document.MyForm.RightList location.href = URL[RightObject.selectedIndex][LeftObject.selectedIndex]; return; } function ChangeList(RightObject) { var LeftObject = document.MyForm.LeftList; for(var i = 0; i < LeftListStr[RightObject.selectedIndex].length; i++) LeftObject.options[i].text = LeftListStr[RightObject.selectedIndex][i]; return; } </script> </body> </html>

  • ラジオボタンとプルダウンを連動させたい

    ラジオボタンとプルダウンを連動させたい いつもお世話になっております。 ラジオボタンのvalue値に連動してプルダウンの内容が変わるということがしたいと思い、 数日前からいろいろと格闘していましたが、煮詰まったため相談に伺いました。 http://okwave.jp/qa/q2928590.htmlのANo.2の回答 -------------------------------------------------------------------- <script language="javascript"> function changeFunc(obj){ var v=obj.value; var f=obj.form; for(var i=0;i<f.length;i++){ if(f[i].type=="checkbox"){ if(f[i].className==v || v=="") f[i].disabled=false; else f[i].disabled=true; } } } </script> <form> <select name="genre" onChange="changeFunc(this)"> <option value="">食べ物</option> <option value="grain">穀物</option> <option value="fruit">果物</option> <option value="meat">生き物</option> </select> <br /> <input type="checkbox" value="お米" class="grain">お米<br /> <input type="checkbox" value="そば" class="grain">そば<br /> <input type="checkbox" value="りんご" class="fruit">りんご<br /> <input type="checkbox" value="みかん" class="fruit">みかん<br /> <input type="checkbox" value="さかな" class="meat">さかな<br /> <input type="checkbox" value="豚肉" class="meat">豚肉 </form> -------------------------------------------------------------------- を参考にいろいろと試してはみたのですが、こちらは「プルダウン→チェックボックス」で、 まったく逆でどうしたら良いのかまったくわかりませんでした。 他のウェブサイトの情報やサンプルも試したのですが、value値やname値他の問題でうまくできませんでした。 希望の仕様は ・ラジオボタンの選択肢によって、プルダウン(セレクトボックス)の内容が変わる(アイテムが消える、または選択できなくなる)。 ・ラジオボタン・プルダウン共にvalue値・name値は決まったものがある(プルダウンのvalue値は日本語) 以上です。 javascriptは素人ですので、わかりにくい質問になっているかもしれないのですが、お力を貸していただけましたら助かります。 よろしくお願いします。

  • 連動プルダウンのclonenode

    質問お願いします。 連動プルダウンをclonenodeで複製し、行を追加するjavascriptを組みたいのですが、 複製されたプルダウンを変更すると、最初の行のプルダウンに連動してしまいます。 <html> <head> <title>連動プルダウン複製</title> <script type="text/javascript"> /*@cc_on@*/ function addEvent(e, t, f){ e./*@if(1) attachEvent('on' + @else@*/ addEventListener(/*@end@*/ t, f, false); } function addRow(trigger){ var table = trigger.ownerDocument.getElementById('Table1'); // 最初の行こぴー var row = table.rows[0].cloneNode(true); row.id = 'ROW.' + table.rows.length; // 最初のセレクト要素 select = row.getElementsByTagName('SELECT')[0]; select.name = 'column.' + table.rows.length; // 最初の tbody に行追加 table.tBodies[0].appendChild(row); } function cText(evt){ var obj = evt.target || evt.srcElement; // ... } </script> </head> <body> <div> <table id="Table1"> <tbody <tr> <td class="cellWhite"> <form> 設備停止項目: <select name="column" onchange="SetSubMenu(value);"> <option value="stop" selected>休止</option> <option value="check">点検・調整</option> <option value="clean">清掃</option> <option value="out">外部事情</option> <option value="machien">機械故障</option> <option value="ele">電気故障</option> <option value="stone">砥石交換</option> <option value="eat">食休</option> </select> </form> </td> <td> <form id="stop" class="secondpulldown"> 設備停止理由: <select> <option value="">余力</option> <option value="">SD</option> <option value="">自家整備</option> <option value="">日報収集</option> </select> </form> <form id="check" class="secondpulldown"> 設備停止理由: <select> <option value="">部品交換</option> <option value="">調整</option> <option value="">給油</option> <option value="">MT検査応援</option> </select> </form> <form id="clean" class="secondpulldown"> 設備停止理由: <select> <option value="">始業時</option> <option value="">終業時</option> <option value="">中間時</option> <option value="">スケールバック上げ</option> <option value="">集塵機バック上げ</option> </select> </form> <form id="out" class="secondpulldown"> 設備停止理由: <select> <option value="">給材時</option> <option value="">集材時</option> <option value="">停電</option> </select> </form> </td> <td> <form id="time" class="thirdpulldown"> 設備停止時間:<input type="text" width=65 size=8 style=text-align:right pattern="[0-9]*"/> </form> </td> </tr> </tbody> </table> <input type="button" value="行追加" onclick="addRow(this)"> </div> </body> </html> わかる方いらっしゃいましたら、ご回答よろしくお願いします。