今天寫php的時候發現$_POST["arr"]無法擷取參數arr的數組,記錄一下。
例如有以下表單需要提交:
代碼如下 |
複製代碼 |
<input type="checkbox" name="arr" value="" /> <input type="checkbox" name="arr" value="" /> <input type="checkbox" name="arr" value="" /> <input type="checkbox" name="arr" value="" /> |
使用$_POST["arr"]只能獲得最後選擇的複選框的值,要獲得全部選中的複選框的值需要把表單修改成下面:
代碼如下 |
複製代碼 |
<input type="checkbox" name="arr[]" value="" /> <input type="checkbox" name="arr[]" value="" /> <input type="checkbox" name="arr[]" value="" /> <input type="checkbox" name="arr[]" value="" /> |
這樣就可以使用$_POST["arr"]獲得全部選中的checkbox的值,那這樣擷取值了我們要怎麼解析出來呢。
第一中方法
代碼如下 |
複製代碼 |
<form action="test1.php" method="post"> <? for($i=0;$i<10;$i++){ ?> <input type="checkbox" name="interests[](不能去掉[])" value="<?=$i?>">test<?=$i?><br> <? } ?> <input type="submit"> </form> test1.php <?php foreach($_POST as $key => $val){ if(is_array($val)){ foreach($val as $v2){ echo "$v2<br>"; } } } |
?>
第二種用法
test3.php
代碼如下 |
複製代碼 |
<?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> |