How to fetch checkbox

人盡茶涼 提交于 2020-01-25 11:53:09

问题


This is my HTML code:

<input type='checkbox' name='cbox[]' value='Jaywalking'/> 
Jaywalking<br/>
<input type='checkbox' name='cbox[]' value='Littering'/> 
Littering<br/>
<input type='checkbox' name='cbox[]' value='Illegal Vendor'/> 
Illegal Vendor

This is my posting code:

if(is_array($_POST['cbox'])) 
   $violation_save=implode(',',$_POST['cbox']); 
else 
   $violation_save=$_POST['cbox'];

mysql_query("UPDATE tblcitizen SET violation='$violation_save' WHERE id='$id'") or die mysql_error());

How can I fetch the selected values from the database?


回答1:


First of all you should NOT use the mysql_* functions of php anymore. These functions are marked as deprecated and will be removed in the next major php release.

So if $_POST['cbox'] is an array, you must handle it as an array.

// how to save checked values
try {
    $db = new PDO(...);
    $stmt = $db->prepare("UPDATE yourTable SET myField = :myField WHERE id = :id");
    $stmt->bindParam(':id' , $id, PDO::PARAM_INT);

    foreach ($_POST['cbox'] as $myField) {
        $stmt->bindParam(':myField', $myField);
        $stmt->execute();
    }
} catch (PDOException $e) {
    // error handling
}

// how to fetch checked values
try {
    $myValues = array();
    $db = new PDO(...);
    $stmt = $db->prepare("SELECT myField FROM myTable WHERE id = :id");
    $stmt->bindParam(':id', $id, PDO::PARAM_INT);
    $stmt->execute();

    foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
        $myValues[] = $row['myField'];
    }
} catch (PDOException $e) {
    // error handling
}

// HTML Part
<input type="checkbox" name="cbox[]" value="bla"<?php if (in_array('bla', $myValues)) { ?> checked="checked"<?php } ?> />

Just have a look at the php manual for PDO or the MySQLi extension.



来源:https://stackoverflow.com/questions/22280485/how-to-fetch-checkbox

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!