我正在创建一个带复选框的表单。但不知怎的,我只得到第一个结果..
希望你能帮忙!
<strong>My form </strong>
<form action="historie.php" method="post">
<?php
// ophalen van bijbehorende producten
$sql_product_opzoek = "SELECT * FROM product_bestellingen WHERE bestelnummer = $bestelnummer_opzoek";
$sql_p_opzoek = mysqli_query($con, $sql_product_opzoek);
$count = 0;
while ($row = mysqli_fetch_array($sql_p_opzoek)) {
$artikelnr_retour = $row['artikelnr'];
$merk_retour = $row['merk'];
$artikelnr_lev_retour = $row['artikelnr_lev'];
$kleur_retour = $row['kleur'];
$maat_retour = $row['maat'];
$prijs_retour = $row['prijs'];
if ($count === 0) {
$sql_opzoek = "SELECT * FROM bestellingen WHERE bestelnummer = $bestelnummer_opzoek";
$sql_b_opzoek = mysqli_query($con, $sql_opzoek);
while ($row = mysqli_fetch_array($sql_b_opzoek)) {
$tent = $row['tent'];
}
echo $tent;
}
echo "
<input type=\"checkbox\" name=\"retour[" . $artikelnr_retour . "]\" value=\"" . $artikelnr_retour . "\">
<input type=\"hidden\" name=\"merk\" value=\"" . $merk_retour . "\">
<input type=\"hidden\" name=\"art_lev\" value=\"" . $artikelnr_lev_retour . "\">
<input type=\"hidden\" name=\"kleur\" value=\"" . $kleur_retour . "\">
<input type=\"hidden\" name=\"maat\" value=\"" . $maat_retour . "\">
<input type=\"hidden\" name=\"prijs\" value=\"" . $prijs_retour . "\">
<input type=\"hidden\" name=\"bestelnummer\" value=\"" . $bestelnummer_opzoek . "\">
";
if ($count === 0) {
echo "<input name=\"submit\" type=\"submit\">";
}
echo "</form>";
$count++;
}
这导致下一个HTML
<strong>HTML</strong>
<form action="historie.php" method="post">
<tr>
<td>654655</td>
<td>Huggo Boss</td>
<td>xwsmcdD</td>
<td> 13</td>
<td>45</td>
<td>€ 99,95</td>
<td>123456</td>
<td>
<input type="checkbox" name="retour[654655]" value="654655">
<input type="hidden" name="merk" value="Huggo Boss">
<input type="hidden" name="art_lev" value="xwsmcdD">
<input type="hidden" name="kleur" value=" 13">
<input type="hidden" name="maat" value="45">
<input type="hidden" name="prijs" value="99,95">
<input type="hidden" name="bestelnummer" value="987654">
</td>
<td><input name="submit" type="submit"></td>
</tr>
</form>
<tr>
<td>100254</td>
<td>Maripe</td>
<td>Stun</td>
<td> 66</td>
<td>33</td>
<td>€ 295,95</td>
<td></td>
<td>
<input type="checkbox" name="retour[100254]" value="100254">
<input type="hidden" name="merk" value="Maripe">
<input type="hidden" name="art_lev" value="Stun">
<input type="hidden" name="kleur" value=" 66">
<input type="hidden" name="maat" value="33">
<input type="hidden" name="prijs" value="295,95">
<input type="hidden" name="bestelnummer" value="987654">
</td>
<td></td>
</tr>
</form>
为了得到结果,我使用下一个PHP
PHP获得结果
foreach ($_POST['retour'] as $value) {
echo $value;
}
这仅在第一个结果中产生:654655
希望你能帮忙!
答案 0 :(得分:1)
无需使用<input type="checkbox" name="retour[654655]" value="654655">
只需使用数组。即。
<input type="checkbox" name="retour[]" value="654655">
<input type="checkbox" name="retour[]" value="100254">
这将为您提供$retour[0]=654655
和$retour[1]=100254
答案 1 :(得分:1)
您的表单在第二个复选框之前关闭。请尝试以下代码: -
<strong>HTML</strong>
<form action="historie.php" method="post">
<tr>
<td>654655</td>
<td>Huggo Boss</td>
<td>xwsmcdD</td>
<td> 13</td>
<td>45</td>
<td>€ 99,95</td>
<td>123456</td>
<td>
<input type="checkbox" name="retour[654655]" value="654655">
<input type="hidden" name="merk" value="Huggo Boss">
<input type="hidden" name="art_lev" value="xwsmcdD">
<input type="hidden" name="kleur" value=" 13">
<input type="hidden" name="maat" value="45">
<input type="hidden" name="prijs" value="99,95">
<input type="hidden" name="bestelnummer" value="987654">
</td>
<td></td>
</tr>
<tr>
<td>100254</td>
<td>Maripe</td>
<td>Stun</td>
<td> 66</td>
<td>33</td>
<td>€ 295,95</td>
<td></td>
<td>
<input type="checkbox" name="retour[100254]" value="100254">
<input type="hidden" name="merk" value="Maripe">
<input type="hidden" name="art_lev" value="Stun">
<input type="hidden" name="kleur" value=" 66">
<input type="hidden" name="maat" value="33">
<input type="hidden" name="prijs" value="295,95">
<input type="hidden" name="bestelnummer" value="987654">
</td>
<td></td>
</tr>
<input name="submit" type="submit">
</form>
答案 2 :(得分:0)
如果您同时选中这两个框,则两个值都应通过$_POST
。如果您只选中其中一个框,则只会通过$_POST
发送该值。
选中了一个复选框:
选中了两个复选框:
请尝试以下操作以确保$_POST
始终存在某些内容:
<input type="hidden" name="retour[654655]" value="0">
<input type="checkbox" name="retour[654655]" value="1">
如果$_POST['654655']
的值等于1
,则它存在。如果它等于0
则不存在。只要没有选中复选框,就不会提交复选框的值。使用上面给出的解决方案,选中复选框后将隐藏隐藏字段的值。