2011-10-31 10 views
1

したがって、$_POST配列に2つのチェックボックスがあり、チェックされているかどうかを確認する必要があります。次に、チェックされたものを印刷したいと思います。これをどうやってやりますか?ブラウザは文句を言わない空(未チェック)のチェックボックスを提出するので、あなただけの、とにかくcheckedチェックボックスをプリントアウトすることができます

+1

print_r($ _ POST);あなたは何を見ますか? –

答えて

3

は通常、私たちは、チェックボックスで遊ぶ方法は次のように配列された名前を使用することにより、次のとおりです。

誰かが使用して私たちのチェックボックスをチェックすると
<input type="checkbox" name="check[]" value="check 1" /> check<br /> 
<input type="checkbox" name="check[]" value="check 2" /> check<br /> 
<input type="checkbox" name="check[]" value="check 3" /> check<br /> 

この方法では、我々は簡単に確認できます。

if(isset($_POST['check'])) 
{ 
    if(count($_POST['check']) > 0) 
    { 
     echo "checked value are: " . implode(", ", $_POST['check']); 
    } 
} 

これは主に、ブラウザがチェックされていないチェックボックスの値を送信しないためです。

+0

非常に興味深い。この「トリック」を認識していなかったし、それはかなり役に立つようだ – xbonez

0

foreach ($_POST as $key=>$val) 
{ 
    echo $key ." :: ".$val."<br/>"; 
} 
0

これは、@ iHaveacomputerの答えを少し拡大しています。

&ラジオがチェックされているのは$_POSTまたは$_GETです。

しかし、チェックボックスの配列(または他のタイプの入力)を持つことができますので、入力の名前に角括弧を使用している場合は、値が配列かどうかを確認する必要があります。

foreach ($_POST as $input_name => $value_s) 
{ 
    if (is_array($value_s)) 
    { 
     foreach ($value_s as $index => $value) 
     { 
      echo "$input_name[$index]::$value<br />"; 
      // note that this literally prints the input_name, brackets, and index) 
      // using braces will just print the value 
     } 
    } 
    else 
    { 
      echo "$input_name::$value_s<br />"; 
    } 
} 
関連する問題