2011-10-04 23 views
15

私はPHPを使ってフォームを作成しようとしています。私は必要なものについてチュートリアルを見つけるようです。複数のチェックボックスからPOSTデータを取得しますか?

私は私のページに複数のチェックボックスオプションを持っている...

<li> 
    <label>What service are you enquiring about?</label> 
    <input type="checkbox" value="Static guarding" name="service">Static guarding<br> 
    <input type="checkbox" value="Mobile Patrols" name="service">Mobile Patrols<br> 
    <input type="checkbox" value="Alarm response escorting" name="service">Alarm response escorting<br> 
    <input type="checkbox" value="Alarm response/ Keyholding" name="service">Alarm response/ Keyholding<br> 
    <input type="checkbox" value="Other" name="service">Other<input type="hidden" value="Other" name="service"></span> 
    </li> 

私はPOSTメソッドを使用して、すべてのチェックボックスの値を収集することが方法がわからないんだけど?

私は

$service = $_POST['service']; 

を使用する場合、私は唯一の「その他」はservice[]代わりのserviceなどの分野で、その後、あなたは配列としてアクセスできるようになります

答えて

43

名前を返します。その後、あなたは配列への定期的な機能を適用することができます。特定の値を選択した場合

  • チェック:

    echo implode("\n", $_POST['service']); 
    

    if (in_array("Other", $_POST['service'])) { /* Other was selected */} 
    
  • 選択したすべてのオプションを備えた単一の改行で区切られた文字列を取得します。

  • すべての選択されたチェックボックスのループ:

    foreach ($_POST['service'] as $service) { 
        echo "You selected: $service <br>"; 
    } 
    
-1
<input type="checkbox" value="Other" name="service">Other<input type="hidden" value="Other" name="service"></span> 

あなたは、チェックボックスと同じ名前の隠し入力フィールドを持っています。前のフィールドと同じ名前の「後の」フィールドは、前のフィールドの値を上書きします。つまり、あなたのフォームは、上記のように、常にservice=Otherを提出します。

あなたの質問をHTMLで表現すると、同じ名前のグループのうちの1つだけを選択できるラジオボタンが好きなように聞こえます。チェックボックスは「AND」の状態で、ラジオボタンは「OR」に対応します

3

現在、最後の隠れた入力をキャッチしています。なぜあなたはその隠された入力を持っていますか?あなたは、「その他」ボックスがチェックされた場合に情報を収集したい場合は、

<input type="text" name="other" style="diplay:none;"/> 

を隠すために持っており、「その他」ボックスがチェックされているときに、JavaScriptでそれを表示することができます。そんな感じ。

ちょうどその時、あなたのPHPにあなたがそう

$service = $_POST['service']; 
echo $service[0]; // Output will be the value of the first selected checkbox 
echo $service[1]; // Output will be the value of the second selected checkbox 
print_r($service); //Output will be an array of values of the selected checkboxes 

などのようにアクセスすることができname属性サービス[]

<li> 
<label>What service are you enquiring about?</label> 
<input type="checkbox" value="Static guarding" name="service[]">Static guarding<br> 
<input type="checkbox" value="Mobile Patrols" name="service[]">Mobile Patrols<br> 
<input type="checkbox" value="Alarm response escorting" name="service[]">Alarm response escorting<br> 
<input type="checkbox" value="Alarm response/ Keyholding" name="service[]">Alarm response/ Keyholding<br> 
<input type="checkbox" value="Other" name="service[]">Other</span> 
</li> 

作る...

関連する問題