サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
ya-ken.hatenadiary.org
<input type="radio" name="hoge" value="1"> <input type="radio" name="hoge" value="2"> <input type="radio" name="hoge" value="3">上のようなラジオボタンがある時に、選択されているvalueを取得する方法。 $("input[name=hoge]:checked").val() 本当はもっと良いやり方があるのかもしれないけれど、体系的に勉強している時間がない。 今作っているサービスの完成のためにとにかく動く状態を目指しているので、多少の無理矢理感は許容。
http://cpants.dev.zsi.at/ CPANTSをご存知だろうか? 俺も最近自作モジュールをCPANに登録したい欲望があっていろいろ調べているうちに見つけたサイトなんだ。何かと言えば、CPANに登録されているモジュールを”あるルール”で評価しているサイトなんだ。 「評価」といってもコーディングの善し悪しではなくて、あくまで配布パッケージとして良い状態を保っているかどうかを評価している。例えば、「READMD」が含まれているか? みたいなことだ。全部英語なんだけど、ぜひ広まってほしいものばかりなので、大急ぎで和訳してみた。興味があれば、読んでみてください。 なお、これらは「正確な直訳」というよりは英文の意図を汲んで、勝手に日本語にしたような感じなので、両方読むと微妙に違いがあるかも。分かりづらい点はいくらでも聞いてください。また、もっといい訳があれば、指摘してください。 ○e
というわけで、Perl(CGI) + prototype.jsでのJsonデータの使い方を説明します。まず、Jsonってなに? って人は下記サイトあたりが参考になるかもしれない。 http://d.hatena.ne.jp/brazil/20050915/1126709945 とりあえず、デモを用意したので、ご覧ください。 http://ya-lab.main.jp/prototype-js-cookbook/03_hello_json/demo.html ここでやってることは簡単。demo.htmlから非同期でreturns_json.cgiにアクセス。帰ってきた値を評価*1してalertで表示しているだけ。では、まずはdemo.htmlから。 <html><head> <title>prototype.js Cookbook 03: hello json!"</title> <scri
id:ya_ken:20060625:1151238191で書いた通り、何か勉強したらそれを形にすることに積極的に体力を使う事にした。 今日は復習がてらグラフ理論の入門書を読んでて面白いアイディアを思いついたので、試しに実装してみた。 なにをやったか あるキーワードのリストがある時に、それらのリストから少し離れたところにあるキーワードを見つけるツール。って書いても分かりづらいと思うから、例をあげる。 これは線が繋がっているときは連想出来ることを意味する。つまりキーワードAからCとDが連想された事が分かる。最初の入力をAとBとした時に2段階連想するとF, G, H, Iの4キーワードが出てくるが、これらの中で最もA, Bから強く連想されたのはどれだろうか? これを導くためにGoogleのページランクのような考え方が使える。この例で言えば最初のA, Bにはそれぞれスコア1を与える。 A: 1.
最近、Web上のサービスでもホットキー(ショートカットキー)*1を実装している所を多く見かける。はてなでもそうだし、check*padでもそう。個人的にも凄い好きな機能なので、あると嬉しくなる。 さて、これの実装方法はとりあえずは難しくない(ただし、ブラウザの対応具合に不安が多々ある)。ロジックとしてはこうだ。 documentに発生したkeydownイベントをキャッチする。 イベントの発生元がtextareaタグかinputタグの時は、入力なのでイベント無視。 押されたキーが欲しいキーかを判断。 押されたキーに対応する関数を呼ぶ。 というわけで、サンプル。 http://ya-lab.main.jp/prototype-js-cookbook/06_hotkey/ ここではkeybind.jsと、上記サンプルのソースを見てもらいたい。keybind.jsの動作は上で書いた通りなので、ソー
今回はprototype.jsだけではなくscript.aculo.us - web 2.0 javascriptというprototype.jsを使ったリッチなUIを実現するライブラリも使います。ですので、このサンプルを試すときは必要なJavascriptをscript.aculo.usからダウンロードしてください。 さぁ、今回のテーマはドラッグ&ドロップでリストの順序を変更するUIです。まずは、サンプルをご覧ください。 http://ya-lab.main.jp/prototype-js-cookbook/04_sortable_list/demo.html リストを掴んで上下すると順序が入れ替わります。かつ、Ajaxを利用して、変更した順序をサーバに送り、帰ってきた文字を上部に表示します(実際はこのCGIの中で順序の保存等の処理を行うことになるでしょう)。 では、まずはHTML+Jav
http://ya-lab.main.jp/perl/module/Class-Pluggable-0.01.tar.gz Class::Pluggableというモジュールを作った。簡単に説明すると、これを継承したクラスは簡単にプラグインによる拡張が出来るようになる、モジュールです。中を見ると超シンプル。 もう少しだけ、追加したいメソッドとかもあるのだけど、とりあえず、タイミングをみてCPANに上げてみたいという欲望があり、CPAN用に配布パッケージを作ってみたので、一足先に公開してみる次第です。一応、英語でPODも書いてあるので、興味があれば読んでください(ドキュメントに関しては急いで書いて、書きっぱなしなので、ちょっとあやしい)。 今、なにより気になっているのが、ネーミングと品質です。そもそも、Class::で良いのか? 俺はそうだと思ったのだけど…。ちょっと、CPANを散歩して雰囲気
さて前回id:ya_ken:20060619:1150725716途中まで説明したCGI::Applicationのプラグインの実装方法の続きを書く。 今回のポイントを簡単に言えば「継承したわけではないのに、あるクラスにどうやって関数を追加するか」なんだ。そこで参考になるのが、CGI::Applicationについてるサンプリコードだ。 sub import { my $caller = scalar(caller); $caller->add_callback('init', 'my_setup'); goto &Exporter::import; }この関数はプラグイン側に書かれるもので、何をしているかを分かりやすく言うと「CGI::Applicationのinitという処理にフックさせている」というわけ。 順を追って書こう、まず超重要なのはimport関数が何なのか?ということだ。P
//長くなりそうだから、タイトルに章番号付けてみた。 自分でフレームワーク・ライブラリ・モジュールといったものを作ったりすると、それ自体に拡張性を持たせるために『プラグイン』という仕組みを導入したくなる時があると思います。例えば… Apacheのモジュールのように各フェーズ(リクエストヘッダの解析、アクセス制御、コンテンツの出力、等々)毎にあとからプラグインによって機能を追加していく(フック=hookしていく)もの CGI::Applicationのようにやはり各フェーズにフックする、または、任意の関数をフレームワークに追加するもの ここでは特にCGI::Applicationを参考に見ていこうと思います。上でもちょっと触れていますが、CGI::Application(以下CAP)にはおおまかに2通りのプラグインがあります。それぞれ説明します(用語は便宜上私が勝手に付けました)。 フック形
このページを最初にブックマークしてみませんか?
『Yet Another ....』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く