我有一个表单要求用户在多个表单字段中输入数字.他们可以选择他们想要的表单字段数.我已将表单字段标记为df1,df2,df3等.对于每个额外的表单字段,用户添加它将简单地加1到df之后的数字.我试图捕获(使用PHP)这些字段并将它们放在一个数组中的问题.更复杂的是,用户可能无法填写字段,例如df2或df15.我正在寻找一种方法来排序启动df1的帖子表单字段,但删除任何空白的字段.然后,将它们的值(数字)插入到数组中.不幸的是,我对如何筛选出NULL的已发布表单字段感到困惑.我一直在尝试遍历字段并在df之后增加数字但没有成功.
任何帮助将非常感谢.
非常感谢,
亚当
请注意,您还可以为表单字段指定索引名称:
<input type="text" name="df[1]" />
<input type="text" name="df[2]" />
Run Code Online (Sandbox Code Playgroud)
然后它们将以数组形式提供(例如,取决于您的提交方法):
foreach ($_GET['df'] as $num => $val) {
…
}
Run Code Online (Sandbox Code Playgroud)
如果索引不在表单名称之外,PHP将自动为它们编制索引,就像分配给数组一样.
<input name="df[]" />
<input name="df[]" />
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式创建多维数组:
<label>Foo</label><input name="df[foo][]" /> <!-- $_REQUEST['df']['foo'][0] -->
<label>Bar</label><input name="df[bar][]" /> <!-- $_REQUEST['df']['bar'][0] -->
<label>Foo</label><input name="df[foo][]" /> <!-- $_REQUEST['df']['foo'][1] -->
<label>Bar</label><input name="df[bar][]" /> <!-- $_REQUEST['df']['bar'][1] -->
Run Code Online (Sandbox Code Playgroud)
请注意,每个[]都会导致生成的索引递增.这意味着除了最后一个索引之外,它对多维数组并不十分有用.例如,假设您希望每个人$_REQUEST['df']都持有array('foo'=>..., 'bar'=>...).以下不起作用:
<label>Foo</label><input name="df[][foo]" /> <!-- $_REQUEST['df'][0]['foo'] -->
<label>Bar</label><input name="df[][bar]" /> <!-- $_REQUEST['df'][1]['bar'] -->
Run Code Online (Sandbox Code Playgroud)
相反,你需要:
<label>Foo</label><input name="df[0][foo]" />
<label>Bar</label><input name="df[0][bar]" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |