获取取消选中复选框的值

时间:2014-12-29 14:10:26

标签: php

是否可以获取未选中复选框的值?我怎么能这样做?我只想获得它的价值并将其保存在我的数据库中。请帮助我。

这是我的代码:

此代码仅显示复选框的值,但我的客户端还希望获取未选中复选框的值,并将未选中复选框的值保存在数据库中,并在已选中的复选框中标记为“不存在”将得到该值并保存到数据库中并标记为“PRESENT”。

 <?php

    $connect = mysql_connect("localhost","root",""); 
    mysql_select_db("db_fpes",$connect); //select the table 

    $result_prof  = mysql_query ("SELECT * FROM professors where fac_stat = 1 ORDER BY Faculty_status       DESC,Faculty_name ASC ");
    $row_prof = mysql_fetch_assoc($result_prof);
    $total_prof = mysql_num_rows($result_prof);

    if(isset($_POST['btnSubmit'])) {
        $checkBox = $_POST['chkFile'];
for ($i=0; $i<sizeof($checkBox); $i++)
        {
            echo $checkBox[$i];
        }

    }
?>
<?php do{ ?>

<form name="formDemo" method="post" action="">

    <input type="checkbox" name = "chkFile[]" value = "<?php echo $row_prof['Faculty_code']; ?>"/> </td> <!--//edit,delete -->


<?php } while($row_prof = mysql_fetch_assoc($result_prof));?>
 <input type="submit" name="btnSubmit" value="Submit"/>
</form>

3 个答案:

答案 0 :(得分:1)

使用isset()检查值,如果值不为空,则设置复选框。否则它不受控制。

if(isset($_POST['mycheckbox']) {
    echo 'checked';
} else {
    echo 'unchecked'
}

答案 1 :(得分:0)

虽然复选框只能有一个发送或不发送的值,但如果你想要总是有某种响应,你可以使用带有未设置值的隐藏html字段,这只会在复选框中发送不活跃:

<input type="hidden" name="some_checkbox" value="Unchecked" />
<input type="checkbox" name="some_checkbox" value="Checked" />

确保它们具有相同的名称,并且在复选框之前定义隐藏字段

答案 2 :(得分:0)

根据您更新的问题,修改并调整了答案。看看下面的代码;它做你想要的。顺便说一句,我正在使用前缀字符变量来更容易地识别数据类型(a =表示数组,i =表示int,r =表示资源等)。另外,我建议您查看PDO或MySQLi库,因为不推荐使用mysql-library(as of PHP 5.5.x)。

<?php       
    $rConnection = mysql_select('localhost', 'root', 'yourpwd');
    mysql_select_db('yourdb', $rConnection);

    $rQuery = mysql_query("
        SELECT      * 
        FROM        `professors` 
        WHERE       `fac_stat` = 1
        ORDER BY    `Faculty_status` DESC,
                    `Faculty_name` ASC");

    $aAllCheckboxValues = array();

    while($aRow = mysql_fetch_assoc($rQuery)) {
        $aAllCheckboxValues[] = $aRow['Faculty_code'];
    } 

    if(isset($_POST['btnSubmit'])) {
        $aChecked   = array();
        $aUnchecked = array();

        foreach($_POST['chkFile'] as $sFacultyCode) {
            # Validate if the value of the posted checkbox is valid
            if(in_array($sFacultyCode, $aAllCheckboxValues)) {
                $aChecked[] = $sFacultyCode;
            }
        }

        $aUnchecked = array_diff($aAllCheckboxValues, $aChecked);

        echo '<pre>';
        echo 'Checked:';
        print_r($aChecked);
        echo 'Unchecked:';
        print_r($aUnchecked);
        echo '</pre>';
    }
?>
<form name="formDemo" method="post" action="">
    <?php foreach($aAllCheckboxValues as $sFacultyCode) { ?>
    <input type="checkbox" name="chkFile[]" value="<?php echo $sFacultyCode ?>"/> <?php echo $sFacultyCode ?><br/>
    <?php } ?>
    <input type="submit" name="btnSubmit" value="Submit"/>
</form>