2012-02-23 78 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