リクエストパラメータを配列で受け取る

 リクエストパラメータを配列で受け取りたい場合、POSTだとNAMEに配列を指定して
<input type="checkbox" name="hoge[]" value="1">
 とすれば良いようです。でもGETの場合はどうなるの?と思ったら、こんなふうになるようです。
  1. http://example.jp?hoge[]=1&hoge[]=2
  2. http://example.jp?hoge[0]=1&hoge[1]=2
 どっちでも意味は同じだろうけど、通常は2のパターンにする意味はないと思うので、使うとしたら1ですね。

 にしても検索条件を細かく指定すると、POSTの初回表示はいいとしても、前後ページを表示するリンクのURLが長くなるのは避けられない。
 とりあえずそんなに大量の条件は指定されないだろうとの前提でGETにしたけど、どうするかなー。GETだとおそらく上限サイズはブラウザ依存。それを超えたらどうなるんだろ? 最後の有効なパラメータのところで切られるのか、あるいはパラメータ自体が渡されないのか。
 でもリンクではなくボタンにして条件をHIDDENで持つってのもねー。安直だし、デザイン上の問題もあるし(ボタンを完全にリンクと同じに見せかけることはできない)、どのページも一意のURLを持つべき、というウェブページの推奨概念からもはずれる。あと、検索結果のURLをブックマークしても意味がなくなる(これはこれで、別の場所に検索結果リンクを張られても見られないわけだからいいけど)。

2010/09/25 17:06:31
最終更新:2010年09月25日 17:06