繁体   English   中英

将特定字段收集到数组

[英]Collect specific fields to an array

根据用户的要求添加具有“行”类的每个div,以便能够一次添加多个项目。 现在的问题是,我如何将所有表单收集到PHP可以读取的数组中(例如JSON)。 我猜想已经有一些简单有效的方法了吗?

<div class="container">
    <div class="row">
        <input type="text" name="value1" id="textfield" />
        <input type="text" name="value2" id="textfield" />
        <input type="text" name="value3" id="textfield" />
    </div>

</div>

这是我在所示示例中想要实现的目标:

array( 
    array ('value1' => '',
           'value2' => '',
           'value3' => '')
);

谢谢!

更新:该表单将使用PHP处理,并且能够对特定的容器div内容执行诸如foreach循环之类的操作超级好。

给每个“组”输入相同的名称,然后在最后添加方括号

<div class="container">
    <div class="row">
        <input type="text" name="value1[]" id="textfield" />
        <input type="text" name="value2[]" id="textfield" />
        <input type="text" name="value3[]" id="textfield" />
    </div>
    <div class="row">
        <input type="text" name="value1[]" id="textfield" />
        <input type="text" name="value2[]" id="textfield" />
        <input type="text" name="value3[]" id="textfield" />
    </div>
</div>

发布表单时,php $_POST变量将包含value1value2value2数组:

var_dump($_POST); // array('value1' = array(...

然后,您可以遍历以“重新组合” PHP中的行(但首先,我将字段名称更改为field1等,而不是value1):

$rows = array(); // set up an empty array to hold your rows

// loop through each POST var
foreach($_POST AS $key=>$field) {
    if(is_array($field)) {
        foreach($field AS $rowIndex=>$fieldValue) {
            $rows[$rowIndex][$field] = $fieldValue; // put the value in a the array by row, field
        }
    }
}

var_dump($rows);

这将给:

array(
    [0] => array(
        'field1' => 'value1',
        'field2' => 'value2',
        'field3' => 'value3'
    ),
    [1] => array(
        'field1' => 'value1',
        'field2' => 'value2',
        'field3' => 'value3'
    ),
    ...
)
<div class="container">
    <div class="row">
        <input type="text" name="value[0][value1]" class="textfield" />
        <input type="text" name="value[0][value2]" class="textfield" />
        <input type="text" name="value[0][value3]" class="textfield" />
    </div>
    <div class="row">
        <input type="text" name="value[1][value1]" class="textfield" />
        <input type="text" name="value[1][value2]" class="textfield" />
        <input type="text" name="value[1][value3]" class="textfield" />
    </div>
</div>

将id更改为class,因为重用相同的id是无效的HTML。

要将XML转换为JSON,您可以尝试以下操作:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM