2013-03-21 41 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; 
?> 

一个得到它的另一页上尝试

相关问题