2012-02-23 112 views
2

我用它来收集复选框的值数组。PHP Post CheckBox返回空数组

<form action="example.php" method="post" name="deleteform"> 
    <input type="submit" value="delete"/> 

    <table> 
    <?php 

    foreach ($memArray as $row) { 
     echo "<tr align=\"center\"> 
     <td><input type=\"checkbox\" value=\"".$row['cus_id']."\" name=\"del[]\" /></td>"; 
     echo "</tr>"; 
    } 
    ?> 
    </table> 
</form 

>

如果形式发布,然后做

$delArray = $_POST['del']; 

    print_r($delArray); 

但结果返回数组,但里面什么也没有

我已经改变名称=删除,而不是名称= del [],它工作。但是,当我添加[]返回它返回空阵列

+2

未选中的复选框不会与表单的其余部分一起提交。 – 2012-02-23 05:23:32

+0

检查表单的方法..是那个职位,或者你已经设置它得到..? – 2012-02-23 05:23:43

+0

它是在一个窗体中,我使用post方法。 – JBL 2012-02-23 05:24:59

回答

2

你应该检查2件事。

首先是形式方法。无论是发布还是获得..

第二次当您提交页面时,复选框被选中或不被选中。如果它没有被检查,那么你不能在$ _GET或$ _POST中有阵列

+0

两者都检查。我使用后,复选框被选中 – JBL 2012-02-23 05:34:40

+0

谢谢。但仍然无法正常工作,我改变了name = del而不是name = del [],并且它可以工作。但是当我添加[]返回它返回空阵列 – JBL 2012-02-23 06:14:57

+0

这是奇怪的东西,但很高兴你得到的解决方案.. :) – 2012-02-23 06:38:18

2

这是你的代码,但我已经对循环进行了修改。 checkbox.php是当前的文件名。

<?php 
    if(isset($_POST['delete'])) 
    { 
     print_r($_POST['del']); 
    } 
?> 
<form action="checkbox.php" method="post" name="deleteform"> 
<input type="submit" value="delete" name="delete"/> 

<table> 
<?php 

for($i=0;$i<5;$i++) { 
    echo "<tr align=\"center\"> 
    <td><input type=\"checkbox\" value=\"".$i."\" name=\"del[]\" /></td>"; 
    echo "</tr>"; 
} 
?> 
</table> 

将它与您的代码进行比较。在提交你将会得到肯定的数组。

+0

谢谢。但仍然无法正常工作,我改变了name = del而不是name = del [],并且它可以工作。但是当我添加[]返回它返回空阵列 – JBL 2012-02-23 06:14:23

+0

奇怪......... – Kamal 2012-02-23 06:30:03

+0

我的意见请通过您的整个codding。 – Kamal 2012-02-23 06:36:24