【问题标题】:Using dynamic radio buttons使用动态单选按钮
【发布时间】:2016-01-12 12:58:00
【问题描述】:

如果您想使用文本字段创建动态表单,这很容易,因为您可以使用数组,就像这样:

<input type="text" name="text[]">
<input type="text" name="text[]">

在 PHP 中,var_dump($_GET['text']); 只会为您提供所需的内容。但是如果我想要一些动态单选按钮呢?

如果我有一些这样的类别怎么办:

Color1: 
<input value="red" type="radio" name="color[]">
<input value="blue" type="radio" name="color[]">

Color2:
<input value="orange" type="radio" name="color[]">
<input value="yellow" type="radio" name="color[]">

Color3:
<input value="black" type="radio" name="color[]">
<input value="white" type="radio" name="color[]">

目前 var_dump() 仅返回所有 6 个字段中的 1 个值。您也只能选择一个单选按钮,这绝对有意义。

我正在寻找的结果是一个数组,它返回例如:红色、黄色、白色(每个类别中的一种颜色)

我认为解决方案是在 name 属性后面传递越来越多的数字。但是我将如何使用 PHP 返回它们的值?

【问题讨论】:

    标签: php html arrays forms


    【解决方案1】:

    将字段命名为 -

    Color1: 
    <input value="red" type="radio" name="color[1]">
    <input value="blue" type="radio" name="color[1]">
    
    Color2:
    <input value="orange" type="radio" name="color[2]">
    <input value="yellow" type="radio" name="color[2]">
    
    Color3:
    <input value="black" type="radio" name="color[3]">
    <input value="white" type="radio" name="color[3]">
    

    它将返回一个多维数组,其中包含 3 个包含颜色的子数组。索引将是 -

    1 => color1
    2 => color2
    3 => color3
    

    【讨论】:

    • 谢谢,这一定是我要找的。还有一个额外的问题:由于 HTML 是动态创建的,当页面完全加载时,有没有办法将不断增加的数字放在 [] 和 jQuery 之间?
    • 请忽略我的评论。我可以解决这个问题。谢谢。
    【解决方案2】:

    就这样做吧:

     Color1: 
    <input value="red" type="radio" name="color[Color1]">
    <input value="blue" type="radio" name="color[Color1]">
    
    Color2:
    <input value="orange" type="radio" name="color[Color2]">
    <input value="yellow" type="radio" name="color[Color2]">
    
    Color3:
    <input value="black" type="radio" name="color[Color3]">
    <input value="white" type="radio" name="color[Color3]">
    

    输出如下:

    [color] => Array
            (
                [Color1] => blue
                [Color2] => yellow
                [Color3] => white
            )
    

    【讨论】:

      【解决方案3】:

      您可以通过为无线电组命名来做到这一点,如下所示

      Color1: 
      <input value="red" type="radio" name="Color1[]">
      <input value="blue" type="radio" name="Color1[]">
      
      Color2:
      <input value="orange" type="radio" name="Color2[]">
      <input value="yellow" type="radio" name="Color2[]">
      
      Color3:
      <input value="black" type="radio" name="Color3[]">
      <input value="white" type="radio" name="Color3[]">
      

      【讨论】:

        猜你喜欢
        • 2018-01-31
        • 2011-10-03
        • 1970-01-01
        • 1970-01-01
        • 2016-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多