[英]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
变量将包含value1
, value2
和value2
数组:
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.