以下は、複数の行で1つの列の値を変更しようとしているコードですが、少し行き詰まっています。
ファイル 1 :
<form name="update-location" method="post" action="recibos_location_update.php">
<div align="right"><button type="submit">Actualizar Estado</button></div>
<hr />
<ul>
<?php
$get_logs = mysql_query("SELECT * FROM recibos ORDER BY id DESC");
while ($logs = mysql_fetch_array($get_logs)){
$serial = $logs['serial'];
$check = $logs['location'];
$problem = $logs['problem'];
?>
<li class="<?php
if ($check == $location1){echo 'recibos-container-shop-li';}
if ($check == $location2){echo 'recibos-container-haji-li';}
if ($check == $location3){echo 'recibos-container-return-li';} ?>">
<?php echo $serial . " | " . $logs['model'] . " | " . $problem; ?>
<div align="right">
<?php
if ($check != 'Returned'){
?>
<input type="hidden" name="serial[]" value="<?php echo $serial; ?>" />
<select name="location">
<option <?php if ($check == $location1){echo 'selected';} ?> value="<?php echo $location1; ?>" style="background: #fff8bf;">Mobils Calfont</option>
<option <?php if ($check == $location2){echo 'selected';} ?> value="<?php echo $location2; ?>" style="background: #ffc1bf;">Haji Jorda</option>
<option <?php if ($check == $location3){echo 'selected';} ?> value="<?php echo $location3; ?>"style="background: #ecffbf;">Devuelto</option>
</select>
<?php
}
else {
echo "<i><font color='#5e8029'>Devuelto</font></i>";
}
?>
</div>
</li>
<?php } ?>
</ul>
ファイル 2
<?php
include "connect.php";
include "links.php";
foreach($_POST["serial"] as $serial){
$location = $_POST['location'];
echo $location . " " . $serial . "<br>";
}
mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");
//header("Location: " . $_SERVER['HTTP_REFERER']);
?>
そして、私が得ている出力は次のとおりです。
Haji 900005
Haji 900004
Haji 900002
ただし、3 つの出力行すべてについて、3 つの選択ボックスの名前が異なるため、異なる名前を付ける必要があります。
私が必要とするのは、プロセスフォームが選択ボックスオプションに含まれる値ですべての行を更新することです。