这似乎是一个已解决的问题,但我已经通过对此进行了数小时的研究,但我尝试过的所有解决方案对我都没有用。请帮帮我 在提交表格或发生任何错误后,我只想检查已检查的那些。 这是我的问题。
<input name="toppings" type="checkbox" value="pepperoni" id="top1"><label
for="top1">Pepperoni</label>
<input name="toppings" type="checkbox" value="bacon" id="top2"><label
for="top2">Canadian Bacon</label>
<input name="toppings" type="checkbox" value="sausage" id="top3"><label
for="top3">Sausage</label>
<input name="toppings" type="checkbox" value="mushrooms" id="top4"><label
for="top4">Mushrooms</label>
<input name="toppings" type="checkbox" value="pineapple" id="top5"><label
for="top5">Pineapple</label>
<input name="toppings" type="checkbox" value="peppers" id="top6"><label
for="top6">Peppers</label>
这就是我试过的
$toppingArr=array();
if(!empty($_GET["toppings"]))
{
foreach($_GET['toppings'] as $tops)
{
array_push($toppingArr,$tops);
}
}
<input name="toppings[]" type="checkbox" value="pepperoni" id="top1"
<?= (in_array("pepperoni", $toppingArr)) ? 'checked' : ''; ?>>
<label for="top1">Pepperoni</label>
<input name="toppings[]" type="checkbox" value="bacon" id="top2"
<?= (in_array("bacon", $toppingArr)) ? 'checked' : ''; ?>>
<label for="top2">Canadian Bacon</label>
<input name="toppings[]" type="checkbox" value="sausage" id="top3">
<?= (in_array("sausage", $toppingArr)) ? 'checked' : ''; ?>>
<label for="top3">Sausage</label>
<input name="toppings[]" type="checkbox" value="mushrooms" id="top4"
<?= (in_array("mushrooms", $toppingArr)) ? 'checked' : ''; ?>>
<label for="top4">Mushrooms</label>
<input name="toppings[]" type="checkbox" value="pineapple" id="top5"
<?= (in_array("pineapple", $toppingArr)) ? 'checked' : ''; ?>>
<label for="top5">Pineapple</label>
<input name="toppings[]" type="checkbox" value="peppers" id="top6"
<?= (in_array("peppers", $toppingArr)) ? 'checked' : ''; ?>>
<label for="top6">Peppers</label>
答案 0 :(得分:0)
>
处有一个额外的id="top3">
,阻止您的代码正常运行。它应该是阅读id="top3"
。
更正错误后,当您在同一页面上发布时,您的代码可以正常工作。如果您要离开该页面并返回,则可以使用$_SESSION
个变量而不是$_GET
。
答案 1 :(得分:-1)
试试这个
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
$toppingArr=array();
if(!empty($_GET["toppings"]))
{
foreach($_GET['toppings'] as $tops)
{
array_push($toppingArr,$tops);
}
}
?>
<form>
<input name="toppings[]" type="checkbox" value="pepperoni" id="top1" <?php if(in_array('pepperoni', $toppingArr)) echo 'checked'; ?> ><label
for="top1">Pepperoni</label>
<input name="toppings[]" type="checkbox" value="bacon" id="top2" <?php if(in_array('bacon', $toppingArr)) echo 'checked'; ?>><label
for="top2">Canadian Bacon</label>
<input name="toppings[]" type="checkbox" value="sausage" id="top3" <?php if(in_array('sausage', $toppingArr)) echo 'checked'; ?>><label
for="top3">Sausage</label>
<input name="toppings[]" type="checkbox" value="mushrooms" id="top4" <?php if(in_array('mushrooms', $toppingArr)) echo 'checked'; ?>><label
for="top4">Mushrooms</label>
<input name="toppings[]" type="checkbox" value="pineapple" id="top5" <?php if(in_array('pineapple', $toppingArr)) echo 'checked'; ?>><label
for="top5">Pineapple</label>
<input name="toppings[]" type="checkbox" value="peppers" id="top6" <?php if(in_array('peppers', $toppingArr)) echo 'checked'; ?>><label
for="top6">Peppers</label>
<input type='submit' value='Submit' />
</form>
</body>
</html>