2013-03-21 43 views
0

您好知識淵博的人。我無法從表單中檢索複選框數據。我有一個網站,讓用戶可以添加複選框自己,所以我寫出來是這樣的:從表格中檢索POST複選框數據(如果存在)

<table style="padding:10px;"> 
      <?php 

      $query_boolean = $DB->prepare("SELECT * FROM moduls WHERE type='boolean'") or die(mysql_error()); 
      $query_boolean->execute(); 
      while (($row = $query_boolean->fetch()) != false) 
       { 

        ?> 
        <tr> 
         <td> 
         <?php echo $row->name ?>: 
         </td> 
         <td> 
          <?php 
          $s = ""; 

          $s .= sprintf('<input type="checkbox" class="textbox" name="boolean_%s" value="yes">%s', $row->id, Yes); 
          $s .= sprintf('<input type="checkbox" class="textbox" name="boolean_%s" value="no">%s', $row->id, No); 

          echo $s; 
          ?> 
         </td> 
        </tr> 
        <?php 

        } 
        ?> 


      </table> 

現在我有,我有通過每一個複選框,再檢查一下,看看有什麼已經被選擇(高級搜索醚無,是,否,或兩者)。我如何從變量中的每個複選框獲取信息?非常感謝!

回答

1

要想從複選框POST數據,他們必須有屬性

檢查= 「檢查」

編輯: 如果你有2個複選框,因爲這..

<input type="checkbox" checked="checked" class="textbox" name="boolean_yes" value="yes"> 
<input type="checkbox" class="textbox" name="boolean_no" value="no"> 

當您提交表單時,選中屬性的複選框將作爲POST發送,而不具有checked屬性的複選框將不會發送。

if(isset($_POST['search'])) { 
    $all_checked = array(); 
    foreach($_POST as $key=>$value){ 
     if(strpos($key, "boolean_") > -1){ 
      $all_checked[$key] = $value; 
     } 
    } 

    var_dump($all_checked); 
} 

這樣你就會得到$ all_checked數組裏所有標記的盒子..其他所有checboxes都沒有標記!

+0

我不明白。如何檢查哪一個檢查了屬性並在哪裏檢查? – AlesSvetina 2013-03-21 08:49:35

+0

檢查是當用戶標記複選框,如果它沒有標記爲不發送爲POST – Svetoslav 2013-03-21 08:50:15

+0

好吧,我應該寫什麼代碼來獲取數據(哪些被檢查)無菌環境:\t是否 缺少數據:\t是否和等等...... – AlesSvetina 2013-03-21 08:52:13

0

,如果你想獲取複選框的值,然後使用複選框名稱作爲數組

<input type="checkbox" name="email1[]" value=""> 

通過

<?php 

$var2 = $_POST['email1']; 
$v=implode(",",$var2); 

echo $v; 
?> 

一個得到它的另一頁上嘗試

相關問題