我需要存储和检索一组表单元素,每个组都存储为表单元素数组

时间:2018-02-05 23:44:50

标签: php arrays forms

我有一个由我存储在db表中的元素组组成的表单。 我使用该表来构建预先填充了表中数据的表单,然后可以对任何字段进行任何编辑。如果确实进行了更改,那么我会根据提交的表单将数据重新加载到表中。这在很大程度上通过简单地为字段名称提供类似

的数组名称来实现
<input  type="text" name="phone[]" value="123-123-1234"/>
每个元素

。提交表单时,我读取数组并加载数据

当我想要使用通常以这种方式存储的单选按钮时出现问题,因为它需要识别无线电的选项,作为打开一个和另一个的阵列,然后将答案存储在给定的名称中无线电元素如此

YES<input  type="radio" name="choice[]" value="YES"/> NO<input  type="radio" name="choice[]" value="NO"/> 

为每次迭代提供选项。因此,当我存储来自所有这些组的数据时,我需要每个选择数组的各个选项与每组元素中的其他元素匹配

我尝试做这样的事情并没有太多运气

        echo'   Yes <input type="radio" name="type'.$c.'[]" value="IT" checked="checked"/>';
    echo'   No <input type="radio" name="type'.$c.'[]" value="NON"/>';

在迭代$ c的循环内部,所以我最终得到type1 [],type2 [] type3 []等,其中数字与手机数组中的元素匹配,因此phone [$ c]属于同一组作为$ c [0]类型中YES或NO存储的选择,这在表单中工作得很好,因为每个组单选按钮元素在没有类型的情况下独立于其他组变为是或否。$ c它将它们全部组合成单个块单选按钮只能选择一个选项。

也许我正在过度思考这个问题并且专注于这种方法,我看不到更简单的方法。如果我确实错过了KISS解决方案,请不要抨击我太多,并可能为我提供答案。

1 个答案:

答案 0 :(得分:0)

好吧,我找到了解决它的决议 答案是在格式

的无线电元素中使用此结构
    echo'   Yes <input type="radio" name="type['.$c.'][]" value="IT" checked="checked"/>';
echo'   No <input type="radio" name="type['.$c.'][]" value="NON"/>';

然后在解析表单参数时读取这样的无线电值

$ choice = $ type [$ c] [0] ---增加$ c

所以我很接近