[关闭]
@Chiang 2020-08-17T22:16:46.000000Z 字数 1391 阅读 576

form表单传递数组数据、php脚本接收的实例

2020-08 工作总结


场景

通过数组传递表单数据,可以保存数据之间的业务属性关系,比如有很多Student,每隔Student都有姓名、年龄、性别、爱好等表单信息。提交表单后还需要针对每个student进行处理或者保存。这样肯定需要为每个student的这些属性表单建立起关联关系,一种方式是根据属性表单的name上加特殊标记进行识别,但是数组传递表单就能使表单数据更结构化。

html元素

  1. <input type="hidden" name="msginfo[name][]" value="张三"/>
  2. <input type="hidden" name="msginfo[phonenum][]" value="111111111"/>
  3. <input type="hidden" name="msginfo[name][]" value="李四"/>
  4. <input type="hidden" name="msginfo[phonenum][]" value="222222222"/>

php代码

  1. $msgInfos = $_POST['msginfo'];
  2. $phoneNums = $msgInfos['name']; // 为array(-=>张三,1=>李四)
  3. $phoneNums = $msgInfos['phonenum']; // 为array(0=>111111111,1=>222222222)

范例1

  1. <form method="post">
  2. zhangsan <input type="text" name="user[zhangsan]" value="0" /><br />
  3. lisi <input type="text" name="user[lisi]" value="1" /><br />
  4. wangwu <input type="text" name="user[wangwu]" value="2" /><br />
  5. zhaoliu <input type="text" name="user[zhaoliu]" value="3" /><br />
  6. <input type="submit" name="submit" value="提交" />
  7. </form>
  1. if(isset($_POST['submit'])){
  2. $users = $_POST['user'];
  3. foreach($users as $key=>$val){
  4. echo 'user ',$key,' = ',$val,'<br />';
  5. }
  6. }

范例2

  1. <form method="post">
  2. <?php for($i=0;$i<10;$i++): ?>
  3. <input type="checkbox" name="interests[]" value="<?= $i; ?>">test<?=$i?><br>
  4. <?php endif; ?>
  5. <input type="submit">
  6. </form>
  7. <?php
  8. if(isset($_POST)){
  9. foreach($_POST as $key => $val){
  10. if(is_array($val)){
  11. foreach($val as $v2){
  12. echo "{$v2}<br>";
  13. }
  14. }
  15. }
  16. }
  17. ?>

参考资料:
form表单传递数组数据、php脚本接收的实例
php 后台如何处理,表单提交过来的同一项目的多条数据??

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注