開発やらlinuxについてやったこと、ひっかかったことのメモ
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
こっちのほうに久しぶりに戻ってきました。
rubyに手を出してみようと決意し、開発環境そろえて、まずは簡単なサンプルを作ってみようとあの有名な「10分で作るWEBアプリケーション」をみながらやってみたけど。。。 動かない。。 どうやらscaffoldというプラグインがRails2.0から外れたらしいのです。 ということで色々追加。 参考URL↓ http://blog.goo.ne.jp/melscafe/e/580d54b990a4d5c3725eac1e3dd3f63a トップページは作成されて、DBと連携はできているみたいだけど、createとeditが出来ません。 「Unknown Action」 No action responded to /item/create という文字が出てしまいます。 出来ました。 参考URL↓ http://d.hatena.ne.jp/idesaku/20071211/1197386955 Rails2.0になって手順が結構変わったということですね。 ネットに載ってる情報は1.x系かもしれないから 参考書でも買ってみようかしら。 PR
Teeda-html-example にはajaxを用いたテーブルのリスト更新のサンプルがついているけど,そのサンプルはボタンを押す度に,テーブルに行を追加していくだけ.
僕がしたいのは,ボタンを押すと,テーブル内の要素が書き換わるようなajax しかも,テーブルはforeachで動的に行数なども変化させつつ生成したい. かなり調べまくった結果,やり方わかったので以下に記述. ajax化したいテーブルサンプルはこんな感じ <!-- テストajaxテーブル --> <table border="1"> <thead> <tr> <th scope="col"></th> <th scope="col">hoge</th> <th scope="col">hoge</th> </tr> </thead> <tbody> <tr id="aaa" style="display: none;"> <th id="ajax">hogehoge</th> <td id="test1">0</td> <td id="test2">0</td> </tr> </tbody> </table> このtrタグにidは,HashMapオブジェクトのID名(キー値とでも呼ぶのかな?). 実際の要素となる,ajax,test1,test2は,パブリック変数. 以下ページクラスのajax部分ソース↓ public Map ajaxTest(){ List listItems = new ArrayList(); testItems = new TestDto[3]; for(int i=0; i<3; i++){ TestDto dto = new TestDto(); dto.setAjax("およよ"); dto.setTest1(1); dto.setTest2(2); testItems[i] = dto; listItems.add(dto); } Map mapTest = new HashMap(); mapTest.put("aaa", listItems); return mapTest; } こんな感じでmapオブジェクトを返してあげます. <script type=text/javascript> <!-- 次,ajaxを実現するjavascript部分↓ var startAjaxTest = function(){ function home_areajaxPage_ajaxTest(res){ Kumu.Ajax.removeRender("aaa"); Kumu.Ajax.render(res); } Kumu.Ajax.executeTeedaAjax(home_areajaxPage_ajaxTest, []); }; KumuEventConf = { 'click_startAjaxTest' : startAjaxTest } //--> </script> あ,jsファイルの読み込みもちろん忘れずに. <input type="button" value="Test" id="startAjaxTest"/> こんな感じでボタン生成してあげれば完成. ボタンを押すと,ページクラスから値を引っ張ってテーブルの要素に代入します. ページクラスの値を変えて,ボタンを押せば,ちゃんと要素が書き換わるかと. 僕が迷ったのは,上記javascriptの赤文字で記述されてる部分. それがサンプルには記述されてないため,どんどん要素が追加されていく仕様だったみたい. Kumu.Ajax.render()はデフォルトでinnerHTMLでセットする動作らしい. そして調べた結果 Kumu.Ajax.removeRender(id)をすると,直前に追加した要素を削除してくれるらしいです. とりあえず,無事に出来てよかった. 次はグラフとテーブルを組み合わせた動的なテーブル更新を実現します.
こんな時間だけど、WindowsにRubyをインストールしてみる。
ついでにRuby on Railsも。 Windowsはインストーラがあるらしいので簡単かも?以下手順。 1.One-Click Ruby Installerのダウンロード↓ http://rubyforge.org/projects/rubyinstaller/ 2.インストーラにしたがってインストール。途中Enable RubyGemsをチェック。 3.コマンドプロンプトで ruby -vで 正しくインストールされているか確認 4.コマンドプロンプトで gem install rails 5.適当な作業ディレクトリ上で rails test で、testプロジェクトの作成 6.ruby test/script/server でruby付属の簡易WEBサーバ起動 7.http://localhost:3000にアクセスしてWEBサーバの起動確認 おぉ、バカなおれでもものの5分で開発環境の構築完了。さすがRuby。期待大。 明日から今週末はちょっと時間ないから来週からRubyでアプリ開発してみようかな♪
ネット調べまくっていろいろやってみても全くできず。。。
何時間迷ったことか. サンプルと自分の見比べてようやく解決. 以下Teeda Ajaxの簡単なサンプルソース
<!-- var startAjax = function(){ function home_ajaxPage_ajaxStartAjax(res){ var result = $i('result'); result.innerHTML = res; } Kumu.Ajax.executeTeedaAjax(home_ajaxPage_ajaxStartAjax, [], Kumu.Ajax.RESPONSE_TYPE_TEXT); }; KumuEventConf = { 'click_startAjax' : startAjax } //--> </script> #2 <div id="result">ここが変わります</div> <input type="button" value="Start Ajax" id="startAjax" /> #3 public String ajaxStartAjax(){ return "Start Ajax"; } このサンプルの動作は,Start Ajaxというボタンを押すと,id="result"の部分のテキストが, サーバからとってきた文字列StartAjaxになります. 注意すべきは,関数名. churaプロジェクトだと,javaクラスは,プロジェクト名.web.ディレクトリ名パッケージの中にあるので, 関数は, ディレクトリ名_ページクラス名_メソッド名 という命名規則です. さらにメソッドは頭がajaxで始まる名前にすること.
値がバラバラに出力されてた件
よくみたら,ただ降順に出力されてたorz さらに本家のページのメソッド説明読んだら sort()メソッド発見...(泣) でもちょっと勉強になったからまぁよいだろう. bluffは,何も指定されなければ,デフォルトで降順にソートして出力してくれるらしいです. なんと親切な. bluffライブラリこれからも使わせてもらうぜ! |
カレンダー
カテゴリー
フリーエリア
最新記事
(07/25)
(04/22)
(04/21)
(02/22)
(02/08)
(02/04)
(01/16)
(11/26)
(11/24)
(11/12)
最新TB
プロフィール
HN:
poti
性別:
非公開
ブログ内検索
最古記事
(11/16)
(11/16)
(11/17)
(11/17)
(11/17)
(11/18)
(11/18)
(11/19)
(11/21)
(11/21)
P R
|