2011-11-02 9 views
2

これは簡単な答えかもしれません。だから私は私のウェブサイトのための検索フォームを持っています。検索フォームにはカテゴリセクションがあり、ユーザーはさまざまなカテゴリのアイテムを選択できます。カテゴリはすべてチェックボックスです。彼らはすべて同じ名前を持っているので、私はいくつかのjavascriptを使ってallを選択し、noneを選択することができます。私はphp $ _GETを使用してURLに引数を追加できるので、ユーザーが最初に検索した基準に戻ることができます。

HTML:

<input name="catID[]" id="catID_10" type="checkbox" value="10" /> 
<input name="catID[]" id="catID_11" type="checkbox" value="11" /> 
<input name="catID[]" id="catID_12" type="checkbox" value="12" /> 
... 

提出されているから、実際のブラケットは、HTML文字列形式に変換され、CATIDの%5B%5D = 10 & CATIDの%5B%の5D」のようなフォーマットされた後のURL = 11 & catID%5B%5D = 12 "

私は、フォームが各チェックボックスの名前を変更するために提出すると、私は実行することができるいくつかのjavascriptがあります他のすべてを選択/すべての機能を選択しますか?

+0

で、個々のチェックボックスの値で取得することができます:あなたはprint_r($_GET)をすれば、あなたのような何かを得るだろうことがわかりますどのようにしても、 'var_dump($ _ GET)'を実行したときにPHPがあなたに与えることは何ですか? – dnagirl

+0

catID%5B%5D = 10&catID%5B%5D = 11&catID%5B%5D = 12は正しい書式設定です。提出時に$ _GETから配列を読み取ることができます – jlb

答えて

4

これはURL内のPHPスタイルの配列では完全に正常です。

array(
    'catID' => array(
     0 => 10, 
     1 => 11, 
     2 => 12 
    ) 
    'otherparameter' => 'value' 
) 

、あなたがでURLを変換しない場合は、単純な

if (is_array($_GET['catID'])) { 
    foreach($_GET['catID'] as $catID) { 
     ... 
    } 
}