3

我有一个包含一组单选按钮的表单,我正在使用 php.ini 将选中按钮的值发送到另一个页面。该表单可以选择添加另一组相同的单选按钮,因此如果我使用以下方法提供名称属性:

<div>
    <input type="radio" name="food[]" value="apple" /> Apple
    <input type="radio" name="food[]" value="orange" /> Orange
</div>

并添加上面的克隆,

$_POST['food'];

这将为我提供每个输入的值,总共为 4。我正在尝试使用括号递增方法,但仍保留返回已检查单选按钮值的功能。

所以我的问题是,有没有办法使用方括号对 name 属性进行自动递增,但是在将值发送到 php 时,请确保每个 div 单选按钮分组只返回一个被选中的值?如果这个问题太模糊,请告诉我,这是我在这里的第一个问题。

4

2 回答 2

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 页的表单中)

于 2013-04-19T13:41:10.867 回答
0

If you want to use several div groups with the same input names, I would create them like this:

<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>

So, in your PHP, you will have each group in separated keys. For example

print_r( $_POST['food'] );

Should return something like this:

array(
  [0] => array(
    [0] => 'apple'
  ),
  [1] => array(
    [0] => 'orange'
  ), 
  [2] => array(
    [0] => 'apple',
    [1] => 'orange'
  )
)

)

于 2013-04-19T15:56:26.897 回答