【问题标题】:Can't retrieve radio button values from multiple radio groups无法从多个单选组中检索单选按钮值
【发布时间】:2014-02-14 14:03:15
【问题描述】:

在我的表单中,我生成了x 单选按钮组:

for ( $j = 0; $j < $x; $j++ ) { 
    <input type="radio" name="gender<?php echo $x; ?>" value="male" />Male
    <input type="radio" name="gender<?php echo $x; ?>" value="female" />Female  
    ...
}

提交后,我尝试检索这些值:

for ( $j = 0; $j < $x; $j++ ) {
    echo $_POST['gender'.$j];   
    ...
}

我收到以下错误消息:

Notice: Undefined index: gender0 in ...  
Notice: Undefined index: gender1 in ...  
Notice: Undefined index: gender2 in ...

但我在我的标记中看到这些广播组正确定义:

<input type="radio" value="male" name="gender0">Male
<input type="radio" value="female" name="gender0">Female
...
<input type="radio" value="male" name="gender1">Male
<input type="radio" value="female" name="gender1">Female 

那么为什么会出现这些错误消息?

【问题讨论】:

  • 只需在接收脚本的开头添加一个var_dump($_POST);,然后您就会确切地看到您得到了什么。而且您知道您只获得实际选中的单选按钮的值,对吧?
  • 天哪,它没有被检查。谢谢CBroe。

标签: radio-button


【解决方案1】:

只需在接收脚本的开头添加一个var_dump($_POST);,然后您就会确切地看到您得到了什么。

而且您知道您只获得实际选中的单选按钮的值,对吧?
因此,如果您无法确定用户是否会为每个组选中一个单选按钮,则在访问之前检查该 POST 条目是否可用,使用 issetempty

顺便说一句,处理这样的数据的一种更方便的方法是,以一种首先在 PHP 中为您获取数组的方式命名表单字段:

<input type="radio" name="gender[0]" value="male" />Male
<input type="radio" name="gender[0]" value="female" />Female  

<input type="radio" name="gender[1]" value="male" />Male
<input type="radio" name="gender[1]" value="female" />Female

– 这将在 $_POST['gender'] 中为您提供一个数组,您可以使用这样的 foreach 循环进行循环:

if(isset($_POST['gender']) && is_array($_POST['gender'])) {
  foreach($_POST['gender'] as $index => $value) {
    // …
  }
}

【讨论】:

    猜你喜欢
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2019-10-04
    • 2020-07-14
    • 1970-01-01
    • 2012-08-24
    相关资源
    最近更新 更多