通过数组传递表单数据,可以保存数据之间的业务属性关系,比如有很多Student,每隔Student都有姓名、年龄、性别、爱好等表单信息。提交表单后还需要针对每个student进行处理或者保存。这样肯定需要为每个student的这些属性表单建立起关联关系,一种方式是根据属性表单的name上加特殊标记进行识别,但是数组传递表单就能使表单数据更结构化。
例子如下:
<input type="hidden" name="msginfo[name][]" value="张三"/>
<input type="hidden" name="msginfo[phonenum][]" value="111111111"/>
<input type="hidden" name="msginfo[name][]" value="李四"/>
<input type="hidden" name="msginfo[phonenum][]" value="222222222"/>
php代码:
<?php
$msgInfos = $_POST['msginfo'];
$phoneNums = $msgInfos['name']; // 为array(-=>张三,1=>李四)
$phoneNums = $msgInfos['phonenum']; // 为array(0=>111111111,1=>222222222)
例一
<?php
if(isset($_POST['submit'])){
$users = $_POST['user'];
foreach($users as $key=>$val){
echo 'user ',$key,' = ',$val,'<br />';
}
}
?>
<form method="post">
zhangsan <input type="text" name="user[zhangsan]" value="0" /><br />
lisi <input type="text" name="user[lisi]" value="1" /><br />
wangwu <input type="text" name="user[wangwu]" value="2" /><br />
zhaoliu <input type="text" name="user[zhaoliu]" value="3" /><br />
<input type="submit" name="submit" value="提交" />
</form>
例二
<form method="post">
<?
for($i=0;$i<10;$i ){
?>
<input type="checkbox" name="interests[]" value="<?=$i?>">test<?=$i?><br>
<?
}
?>
<input type="submit">
</form>
<?php
<code class="php keyword">if(isset($_POST)){
foreach($_POST as $key => $val){
if(is_array($val)){
foreach($val as $v2){
echo "$v2<br>";
}
}
}
}
?>
要保存很多表单信息,发现一个挺不错的方法,以数组的形式把表单中的数据提交至后台进行保存。
<form id="form1" action="./index.php" method="get"> <div class="form-control"> <input type="text" name="infos[1][name]" /> <input type="text" name="infos[1][num]" /> <input type="text" name="infos[1][img]" /> </div> <br> <div class="form-control"> <input type="text" name="infos[2][name]" /> <input type="text" name="infos[2][num]" /> <input type="text" name="infos[2][img]" /> </div> <br> <div class="form-control"> <input type="text" name="infos[3][name]" /> <input type="text" name="infos[3][num]" /> <input type="text" name="infos[3][img]" /> </div> ...... <input type="submit" value="Submit" /> </form>
<input type="text" name="infos[1][name]" /> <input type="text" name="infos[1][num]" /> <input type="text" name="infos[1][img]" />