2017-08-17 1 views
0

このようなトグルボタンは、データベースからフェッチされた行数トグルボタンの値をオンにすると、その値を1に保存します。0とは、同じ配列変数の中でPHPを使用しています。

<td colspan="3"><input type="checkbox" class="toggleone" name="attendance[]" id="attendance[]" data-toggle="toggle" data-on="Yes" data-off="No"></td> 

私の問題は、値が正しくポストボタン をクリックすると投稿。しかし、ボタン上のカウントが正しいですが、私はどこ

button    obtained output    desired output 
on     1        1 
off     1        0 
off     0        0 
off     0        0 
on     0        1 

誰かが私を助けて、その位置に正しく保存されていないされていないです間違っている。 はここ$_POST['attendance'][$i]は、あなたがそれだと思うものではありません、私のforループ

for($i=0;$i<($_SESSION['num1']);$i++) 
{ 

     $subcheck = (isset($_POST['attendance'][$i]))? 1 : 0; 
     echo $subcheck; 
} 

答えて

0

あなたのロジックが間違っています。 2つの入力がチェックされている場合、最初の2つのチェックボックスかどうかにかかわらず、$_POST['attendance']の最初の2つの値(インデックス0と1)が設定されます。

キーチェックボックスの値でもなく、サーバー上でそれらを識別することはできません。

これを避けるには、フォームを作成するときにキーを手動で設定するか、値を指定する必要があります。

は、あなたのようなものを使用することができ、ループ内でのキーを設定するには:あなたはIDの配列表記を使用することができる場合、私はそうは思わない(私はわからない

<input type="checkbox" class="toggleone" name="attendance[<?php echo $i; ?>]" id="attendance_<?php echo $i; ?>" data-toggle="toggle" data-on="Yes" data-off="No"> 

注意を。..私は文字列を使ってIDを設定しました。

+0

自分で解決策を見つけましたが、デフォルト値は0です – HariPriya

関連する問題