2011-07-18 6 views
0

誰かが私を助けることができますか?私は複数の選択肢と私のチェックボックスのグループをエコーすることはできません。 チェックボックスグループをエコーするたびに、私がチェックする最後のボックスが表示されます。チェックボックスグループをエコーする方法は?

ここに私のコードだ

<?php 
$submit = $_POST['submit']; 
$incharge = $_POST['incharge']; 

if ($submit) 
{ 
    echo $incharge; 
} 

?> 

<table width="500" height="69"> 
     <tr> 
     <td width="73"><label> 
      <input type="checkbox" name="incharge" value="1" id="responsible_0" /> 
      MNFA</label></td> 
      <td width="72"><label> 
      <input type="checkbox" name="incharge" value="2" id="responsible_1" /> 
      HJB</label></td> 
      <td width="70"><label> 
      <input type="checkbox" name="incharge" value="3" id="responsible_2" /> 
      JBG</label></td> 
      <td width="75"><label> 
      <input type="checkbox" name="incharge" value="4" id="responsible_3" /> 
      MSG</label></td> 
      <td width="275"><label> 
      <input type="checkbox" name="incharge" value="5" id="responsible_4" /> 
      MGR</label></td> 
     </tr> 
     <tr> 
     <td height="33"><label> 
      <input type="checkbox" name="incharge" value="6" id="responsible_5" /> 
      AAP</label></td> 
      <td><label> 
      <input type="checkbox" name="incharge" value="7" id="responsible_6" /> 
      EPM</label></td> 
      <td><label> 
      <input type="checkbox" name="incharge" value="8" id="responsible_7" /> 
      SGA</label></td> 
      <td><label> 
      <input type="checkbox" name="incharge" value="9" id="responsible_8" /> 
      JLL</label></td> 
      <td><label> 
      <input type="checkbox" name="incharge" value="10" id="responsible_9" /> 
      AFM</label></td> 
     </tr> 
    </table> 

..事前にありがとうございます。

答えて

2

変更name属性に何が欲しいのはそうのように、アレイへのすべてのチェックボックスを割り当てることです。

name="incharge[]" 

これは、配列$ inchargeを生成します。

この値をエコーすることはできません。あなたは "print_r"するか、それをループする必要があります。

+0

私は[]表記を使用しないウェブサイトをいくつか見てきました。それぞれの要求変数は、要求配列に複数回現れます。例えば。上記のフォームで2つのチェックボックスをチェックすると、URL文字列(GETの場合)に 'incharge'が2回異なる値で含まれます。 – Tchypp

+0

ああ、Web上にある多くのチュートリアルには[]表記はありません。 – Tchypp

1

"input"要素の "name"属性を変更する必要があります。末尾に角括弧[]を追加して配列を指定します。 $_POST['incharge']は文字列ではなく配列になります。

<input type="checkbox" name="incharge[]" value="1" id="responsible_0" /> 
1

すべてのチェックボックスが、それによって何度も彼らの名前を変更し、同じ名前を持っているので、最後の値だけが送られている理由があります。あなたはそれを反復処理したいと思う

name="incharge[]"

変更name="incharge"

if ($submit) 
{ 
    // PHP throws a fit if we try to loop a non-array 
    if(is_array($incharge)) 
    { 
     foreach($incharge as $val) 
     { 
      echo $val . '<br />'; 
     } 
    } 
} 
+0

または、print_r($ incharge)を使用して配列を表示できます。 – Rasika

+0

Yepやvar_dumpなど。彼は彼の例でそれをエコーし​​たいので、配列の各エントリをエコーする方法を彼に示しました。 – AlienWebguy

+0

これで動作します。どうもありがとうございます.. 。 –

0
if(isset($_post['calculations']) 
{ 
    $member = $_POST['member'];//get the total values in an array 

    if(is_array($member))// confirm $member is an array 
    { 
     foreach($member as $names) 
     { 
      echo $names ."<br/>";//take the values 

     } 
    } 


<input type="checkbox" name="member[]" value="value1"> 
関連する問題