我有一个带有一组单选按钮的表单,我将使用php将选中按钮的值发送到另一个页面。表单可以选择添加另一组相同的单选按钮,所以如果我使用以下方法给出名称属性:
<div>
<input type="radio" name="food[]" value="apple" /> Apple
<input type="radio" name="food[]" value="orange" /> Orange
</div>
并添加上述的克隆,
$_POST['food'];
这将为我提供每个输入的值,并且总共为4.我正在尝试使用括号递增方法,但仍然保留返回已检查的单选按钮的值的功能。
所以我的问题是,是否有一种方法可以使用方括号对name属性进行自动递增,但是当将值发送到php时,请确保每个div分组的单选按钮仅返回其中一个值。检查?如果这个问题太模糊,请告诉我,这是我的第一个问题。
答案 0 :(得分:0)
我可能不明白你的问题。您无法自动增加名称,因为您使用单选按钮。通过选择第一页上的苹果和第二页上的橙色,您将失去第一个选择(苹果)。您可以使用复选框而不是单选按钮来执行此操作:
第1页:
<form method="post" action="page2.php">
<div>
<input type="checkbox" name="numberofapples" value="1" /> Apple
<input type="checkbox" name="numberoforanges" value="1" /> Orange
</div>
<input type="submit" value="go">
</form>
第2页:
<form method="post" action="result.php">
<div>
<?if($_POST['numberofapples']){?><input type="hidden" name="numberofapples" value="1" /> <?}?>
<input type="checkbox" name="numberofapples" value="<?=($_POST['numberofapples'])?2:1?>" /> Apple
<?if($_POST['numberoforanges']){?><input type="hidden" name="numberoforanges" value="1" /> <?}?>
<input type="checkbox" name="numberoforanges" value="<?=($_POST['numberoforanges'])?2:1?>" /> Orange
</div>
<input type="submit" value="go">
</form>
结果页面:
Apples: <?=($_POST['numberofapples'])?$_POST['numberofapples']:0?>
Oranges: <?=($_POST['numberoforanges'])?$_POST['numberoforanges']:0?>
但为什么不在发布第二页后进行计数呢? (将第1页中的帖子值作为隐藏字段添加到第2页的表单中)
答案 1 :(得分:0)
如果你想使用几个具有相同输入名称的div组,我会像这样创建它们:
<div>
<input type="radio" name="food[0][]" value="apple" /> Apple
<input type="radio" name="food[0][]" value="orange" /> Orange
</div>
<div>
<input type="radio" name="food[1][]" value="apple" /> Apple
<input type="radio" name="food[1][]" value="orange" /> Orange
</div>
<div>
<input type="radio" name="food[2][]" value="apple" /> Apple
<input type="radio" name="food[2][]" value="orange" /> Orange
</div>
因此,在PHP中,您将每个组分成不同的键。例如
print_r( $_POST['food'] );
应该返回这样的内容:
array(
[0] => array(
[0] => 'apple'
),
[1] => array(
[0] => 'orange'
),
[2] => array(
[0] => 'apple',
[1] => 'orange'
)
)
)