如何在php中获取复选复选框的值?

时间:2011-06-09 10:28:31

标签: php checkbox

以下是代码:

<?php // operator Page
include ("classes/dbhelper.php");
include ("conf/conf.php");
$conf = new Dbconf();
$dbURL = $conf->get_databaseURL();
$dbUName = $conf->get_databaseUName();
$dbPword = $conf->get_databasePWord();
$dbName = $conf->get_databaseName();
$nameOfDbWithCustomers = $conf->get_tableName('customer');

if(isset($_REQUEST[session_name()]))
{
   session_start();
}
else
{
   header("Location: authorize.php");
}
if($_SESSION['usr_id'] == md5(crypt($_SESSION['login'],$_SESSION['pass'])))
{   
    echo "<script type='text/javascript' src='/jquery-1.6.js'></script>
        <form method='post'> 
        Name: <input type='text' name='Name' size='10' value=''>
        Post: <input type='text' name='Post' size='10' value=''>
        Section: <input type='text' name='Section' size='10' value=''>
        Company: <input type='text' name='Company' size='10' value=''>
        Phone Number: <input type='text' name='Phone_Number' size='10 value=''>
        e-mail: <input type='text' name='e-mail' size='10' value=''>
        Active: <input type='checkbox' name='Active' value=''> 
        <input type='submit' name='Search' size='10' value='Search'> <br>
        <input type='reset' name='Reset' value='Reset'>
        </form>

        <form method ='post'>
        SMS: <input type='checkbox' name = 'sms'>
        E-mail: <input type='checkbox' name = 'email' id='mailcheck'><br>
        <TEXTAREA NAME='message' WRAP='virtual' COLS='40' ROWS='3'>
        </TEXTAREA><br>
        <input type ='submit' name ='Send' size = '10' value = 'Send'>
        </form>

        <form action='upload.php'' method='post' enctype='multipart/form-data'>
        <input type='file' name='filename'><br> 
        <input type='submit value='Загрузить'><br>
        </form>";

    if (isset($POST['Send'])){

    }

    if (isset($_POST['Search'])){
        //*********************query*************************
        $name = isset($_POST['Name']) ? $_POST['Name'] : 0;
        $post = isset($_POST['Post']) ? $_POST['Post'] : 0;
        $section = isset($_POST['Section']) ? $_POST['Section'] : 0;
        $company = isset($_POST['Company']) ? $_POST['Company'] : 0;
        $phoneNumber = isset($_POST['Phone_Number']) ? $_POST['Phone_Number'] : 0;
        $eMail = isset($_POST['e-mail']) ? $_POST['e-mail'] : 0;
        $active = isset($_POST['Active']) ? "1" : "0";

        $array = array(
                 "name" => $name,
                 "post" => $post,
                 "section" => $section,
                 "company" => $company,
                 "phone_number" => $phoneNumber,
                 "email" => $eMail,
                 "status" => $active
               );

        $sql = "SELECT * FROM $nameOfDbWithCustomers";
        $sql_where = array();

        foreach($array as $key => $value)
            {
                if(!empty($value))
                $sql_where[] = $key." = "."'$value'";
            }
        if(count($sql_where) > 0)
            {
                $sql .=" WHERE ";
            }
        $sql.=" ".implode(" AND ", $sql_where);
        //*********************END query*************************
        $dbHelp = new DbHelper($dbURL, $dbUName, $dbPword, $dbName, '');
        $queryResult = $dbHelp->getDataFromDbByQuery($sql); 

        $table = "<table border=1 width=100% align=center>\n";
        $table .= "<tr>\n";
        $i = 1;
        while ($i < mysql_num_fields($queryResult)) {
            $meta = mysql_fetch_field($queryResult, $i);
            $i++;
            $table .= "<td>".$meta->name."</td>\n";
        }
        $table .= "<td> Выбрать все: <input type='checkbox' name='cbname3[]' value='main' id='chkSelectAll'</td>\n";
        $table .= "</tr>\n";
        $i = 1;
        while ($row = mysql_fetch_assoc($queryResult)){     
            $table .= "<tr>\n";
            $table .= "<td>".$row['name']."</td>\n";
            $table .= "<td>".$row['post']."</td>\n";    
            $table .= "<td>".$row['section']."</td>\n";  
            $table .= "<td>".$row['company']."</td>\n";  
            $table .= "<td>".$row['phone_number']."</td>\n";  
            $table .= "<td>".$row['email']."</td>\n";  
            $table .= "<td>".$row['status']."</td>\n";  
            $table .= "<td>".$row['lock_time']."</td>\n";  
            $table .= "<td>".$row['reason_for_blocking']."</td>\n";  
            $table .= "<td><input type='checkbox' class=".check."  name='cbname3[]' id='chkItems' value=".$row['id']." /></td>";
            $table .= "</tr>\n";
            $i++;
        }
        $table .= "</table>\n";
        echo $table;
    }
}

?>
<script type="text/javascript">
    $(document).ready(function() {
        $("#<%=chkSelectAll.ClientID %>").click(function() {
            $("#<%= chkItems.ClientID %> input:checkbox").attr('checked',this.checked);
        });

        $("#<%=chkItems.ClientID %> input:checkbox").click(function(){
          if($("#<%= chkSelectAll.ClientID %>").attr('checked') == true && this.checked == false)
             $("#<%= chkSelectAll.ClientID %>").attr('checked',false);

             if(this.checked == true)
                CheckSelectAll();
        });

      function checkSelectAll()
      {
          var flag = true;
           $("#<%=chkItems.ClientID %> input:checkbox").each(function() {
                if(this.checked == false)
                    flag = false;
            });
              $("#<%= chkSelectAll.ClientID %>").attr('checked',flag);
      }  
    });

当用户按下“发送”按钮时,我希望从表中获取复选复选框的值。我怎么能这样做?

3 个答案:

答案 0 :(得分:26)

您应为HTML代码中的复选框指定值

Active: <input type='checkbox' name='Active' value='1'> 

然后如果选中该复选框,则它在POST中包含指定的值,否则您必须设置何时取消选中复选框

$active = isset($_POST['Active']) && $_POST['Active']  ? "1" : "0";

答案 1 :(得分:2)

答案 2 :(得分:2)

选中复选框的所有值都应位于$_POST['cbname3']