jQuery:beforeでdom要素追加
redmineの検索は、検索条件を可変にすることが可能。
必要な条件(フィルタ)をセレクトボックスから選ぶことで、
検索項目が増えてゆき、検索項目のチェックボックスを
外すことで検索条件を消すことができる・・・
といった検索機能を業務ツールに組み込む為に調査。
難しいかなぁと思っていたが実際はjqueryのみでさっくりいった為、記録。
1部・・検索項目の追加
2部・・検索項目を使用して検索
1部
その1 まずJQUERYを読み込み
<script src="http://www.google.com/jsapi"></script> <script> google.load("jquery", "1.6.1"); google.load("jqueryui", "1.7.1"); </script>
その2 セレクトボックスからjavascriptをキックする
<form name="form1"> <select name="ChoiceFilter" onChange="OnButtonClick(this.form.ChoiceFilter.value);"> <option selected value="search_1">検索1</option> <option value="search_2">検索2</option> </select> </form>
その3
jqueryのbeforeやafterでdivにhtmlを追加する。
function OnButtonClick(filter_name){ $("#target_div").before("add txt"); } <div id="target_div"></div>
2部
その5 テキストフォームの状況を監視(キーが上がったとき)して、値を保管。
値を渡す。
var param_search_1; $("#search_1").bind("keyup", function(){param_search_1=$(this).val();});
その6 tbodyを使って検索結果を表記する(下記の例ではJSONで値を受け取る)
function get_json(){ //検索結果表示をリセット $('#result tbody').empty(); var params = {search_1:param_search_1,search_2:param_search_2}; $.getJSON( 'http://192.168.0.2/test/test.php', params, function(data, status) { $.each(data,function(index,value){ $('#result tbody').append("<tr><td>"+value.Result1+"</td><td>"+value.Result2+"</td><td>value.Result3</td></tr>"); }) } ); } <table id="result" border="1"> <thead> <tr> <th>A</th> <th>B</th> <th>C</th> </tr> </thead> <tbody> </tbody> </table> <a onClick="get_json();">検索</a>