whileループで異なる値を持つチェックボックスが4つあります。&という名前の配列があります。最後のループされたチェックボックスのセットから選択された値が更新されていますが、選択したすべての値(1セットにつき1つ)が対応する行に独立して更新される必要があります。ループされたチェックボックスの配列値が繰り返されます
HTML
<input type="checkbox" name="size[]" value="S" />
<input type="checkbox" name="size[]" value="M" />
<input type="checkbox" name="size[]" value="L" />
<input type="checkbox" name="size[]" value="XL" />
PHP
<?php
if(isset($_POST['update'])){
$select_id = "select * from customer where ip='$ip'";
$get_id = mysqli_query($db, $select_id);
while ($row = mysqli_fetch_array($get_id)){
foreach($_POST['size'] as $size){
$product_id = $row['product_id'];
$update_size = "update customer set size='$size' where product_id='$product_id'";
$run_size = mysqli_query($db, $update_size);
}
}
}
?>
UPDATE - ALMOST THERE!
WHILEループのOUT
$i = 1;
WHILEループで
$i++;
<input type="checkbox" name="size[].$i." value="S" />
<input type="checkbox" name="size[].$i." value="M" />
<input type="checkbox" name="size[].$i." value="L" />
<input type="checkbox" name="size[].$i." value="XL" />
処理で
<?php
if(isset($_POST['update'])){
$select_id = "select * from customer where ip='$ip'";
$get_id = mysqli_query($db, $select_id);
while ($row = mysqli_fetch_array($get_id)){
$size = $_POST['size'];
$product_id = $row['product_id'];
foreach ($size as $_POST['size']);
{
$update_size = "update customer set size='$size' where product_id='$product_id'";
$run_size = mysqli_query($db, $update_size);
}
}
}
?>
今では、行ごとの変数の異なるセットを更新していますが、今1は正しい値であります、もう一つの配列はなぜですか?
申し訳ありませんが、1つのチェックボックスしか選択されていないため、1行に4つの値が格納されます。 – Steven
チェックボックスをクリックすると、 ''または '' javascriptをチェックボックスに追加するとチェックボックスをオフにします。ここに参照があります:http://jsfiddle.net/MQM8k/ –
ボックスの次のループが一意になるように、チェックボックスの名前を増やす必要があります。 – Steven