所以,我想这可能是一个简单的问题,但我现在无法理解它... = S
我有一个从我的数据库中获取数据的表单。
它包含一列名称,然后是两列带复选框的列。
当我提交此表单时,我想使用给定的复选框更新数据库。
因此,表单被加载并填充例如5个不同的名称/用户。每个用户都有2个复选框选项。 (共3列)。
就像现在一样,它适用于所有人,除非只选中两个复选框中的最后一个。然后我的代码看到它只检查了第一个复选框..(因为未发送未选中的复选框,所以我的最后一个复选框位于我的第一个复选框的数组位置)。
对不起我的非常糟糕的解释。我希望你能解决我的问题。
以下是一些代码:
<form id="rsvpRegForm" method="post" action="updateRSVP.php">
<h2>Kryss av for kirke og/eller middag:</h2>
<br>
<table id="rsvpRegTable" border="0">
<?php while($guest = $guestSQL->fetch_assoc()){ ?>
<tr>
<td style="text-align:left" width="200px"><?=$guest['guestName']?><input type="hidden" name="guest<?=$guest['guestID']?>[]" value="<?=$guest['guestID']?>"></td>
<td><input type="checkbox" <?php if(isset($guest['guestChurch'])){if($guest['guestChurch'] == 1){ echo 'checked';}} ?> value="1" name="guest<?=$guest['guestID']?>[]">Kirke</td>
<td><input type="checkbox" <?php if(isset($guest['guestParty'])){if($guest['guestParty'] == 1){ echo 'checked';}} ?> value="1" name="guest<?=$guest['guestID']?>[]">Middag</td>
</tr>
<?php } ?>
</table>
<br>
<input type="submit" value="Send RSVP">
</form>
这是负责使用结果更新我的数据库的代码:
foreach($_POST as $guest){
if(!isset($guest[1])){
$guest[1] = 0;
}
if(!isset($guest[2])){
$guest[2] = 0;
}
$stmt = $mysqli->prepare('UPDATE rsvp_guests SET
guestReplied = ?,
guestChurch = ?,
guestParty = ?
WHERE guestID = ?');
$stmt->bind_param('dddd',
$rsvpReplied,
$guest[1],
$guest[2],
$guest[0]);
$stmt->execute();
$stmt->close();
}
答案 0 :(得分:1)
命名name="guest<?=$guest['guestID']?>[party]"
&amp; name="guest<?=$guest['guestID']?>[church]"
,所以你知道哪一个开启或关闭。