Evo*_*o_x 57 html php html-input
我有一个这样的表格
<form>
<input type="text" class="form-control" placeholder="Titel" name="levels[level]">
<input type="text" class="form-control" placeholder="Titel" name="levels[build_time]">
<input type="text" class="form-control" placeholder="Titel" name="levels[level]">
<input type="text" class="form-control" placeholder="Titel" name="levels[build_time]">
</form>
Run Code Online (Sandbox Code Playgroud)
我想要的是$ _POST输出是一个类似的数组
Array (
[1] => Array ( [level] => 1 [build_time] => 123 )
[2] => Array ( [level] => 2 [build_time] => 456 )
)
Run Code Online (Sandbox Code Playgroud)
我知道我可以做一些像name ="levels [1] [build_time]"等等,但由于这些元素是动态添加的,因此很难添加索引.还有其他方法吗?
编辑:
按照建议,我改变了我的形式.我现在也包括了我的整个HTML,因为我觉得我在这里遗漏了一些东西.我的HTML现在:
<div class="form-group">
<label class="col-md-2">Name(z.B. 1)</label>
<div class="col-md-10">
<input type="text" class="form-control" placeholder="Titel" name="levels[][level]">
</div>
<label class="col-md-2">Bauzeit(In Sekunden)</label>
<div class="col-md-10">
<input type="text" class="form-control" placeholder="Titel" name="levels[][build_time]">
</div>
</div>
<div class="form-group">
<label class="col-md-2">Name(z.B. 1)</label>
<div class="col-md-10">
<input type="text" class="form-control" placeholder="Titel" name="levels[][level]">
</div>
<label class="col-md-2">Bauzeit(In Sekunden)</label>
<div class="col-md-10">
<input type="text" class="form-control" placeholder="Titel" name="levels[][build_time]">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我现在得到的输出是:
[levels] => Array (
[0] => Array ( [level] => 1 )
[1] => Array ( [build_time] => 234 )
[2] => Array ( [level] => 2 )
[3] => Array ( [build_time] => 456 )
)
Run Code Online (Sandbox Code Playgroud)
编辑2:
根据您的编辑建议,我编辑了表单并将方括号移到了名称的末尾.我现在得到的输出是:
[levels] => Array (
[level] => Array (
[0] => 1
[1] => 2
)
[build_time] => Array (
[0] => 234
[1] => 456
)
)
Run Code Online (Sandbox Code Playgroud)
我想这有点工作,但看起来仍然很复杂.没有更好的方法?
Han*_*nky 81
只需添加[]这些名称即可
<input type="text" class="form-control" placeholder="Titel" name="levels[level][]">
<input type="text" class="form-control" placeholder="Titel" name="levels[build_time][]">
Run Code Online (Sandbox Code Playgroud)
获取该模板,然后即使使用循环也可以添加它们.
然后,您可以根据需要动态添加它们,而无需提供索引.PHP会像预期的场景示例一样选择它们.
编辑
对不起,我在错误的地方有大括号,这会使每个新值成为一个新的数组元素.现在使用更新的代码,这将为您提供以下数组结构
levels > level (Array)
levels > build_time (Array)
Run Code Online (Sandbox Code Playgroud)
两个子阵列上的相同索引将为您提供对.例如
echo $levels["level"][5];
echo $levels["build_time"][5];
Run Code Online (Sandbox Code Playgroud)
Nun*_*edo 33
如果你可以索引数组,你可以这样做:
<form>
<input type="text" class="form-control" placeholder="Titel" name="levels[0][level]">
<input type="text" class="form-control" placeholder="Titel" name="levels[0][build_time]">
<input type="text" class="form-control" placeholder="Titel" name="levels[1][level]">
<input type="text" class="form-control" placeholder="Titel" name="levels[1][build_time]">
<input type="text" class="form-control" placeholder="Titel" name="levels[2][level]">
<input type="text" class="form-control" placeholder="Titel" name="levels[2][build_time]">
</form>
Run Code Online (Sandbox Code Playgroud)
......实现这一目标:
[levels] => Array (
[0] => Array (
[level] => 1
[build_time] => 2
)
[1] => Array (
[level] => 234
[build_time] => 456
)
[2] => Array (
[level] => 111
[build_time] => 222
)
)
Run Code Online (Sandbox Code Playgroud)
但是如果从表单中间删除一对输入(动态地,我猜),那么除非你更新输入名称,否则你的数组中会出现漏洞......
小智 15
HTML:使用名称作为
<input name="levels[level][]">
<input name="levels[build_time][]">
Run Code Online (Sandbox Code Playgroud)
PHP:
$array = filter_input_array(INPUT_POST);
$newArray = array();
foreach (array_keys($array) as $fieldKey) {
foreach ($array[$fieldKey] as $key=>$value) {
$newArray[$key][$fieldKey] = $value;
}
}
Run Code Online (Sandbox Code Playgroud)
$ newArray将根据需要保存数据
Array (
[0] => Array ( [level] => 1 [build_time] => 123 )
[1] => Array ( [level] => 2 [build_time] => 456 )
)
Run Code Online (Sandbox Code Playgroud)
小智 7
另外:对于那些有空POST变量的人,不要使用:
name="[levels][level][]"
Run Code Online (Sandbox Code Playgroud)
而是使用它(因为它已经在这个例子中):
name="levels[level][]"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162219 次 |
| 最近记录: |