如果数据库中的值相同,则选中Checkset in Checkbox

时间:2015-08-15 21:48:27

标签: php mysql checkbox mysqli

如果复选框中的值与数据库中的值相同,我会尝试在复选框中添加checked

我的数据库:     Column = fees_month []     值='$ row [month]'

My Default checkbox :
echo "<th >"."<input type='checkbox' name='fees_month[]' value= '$row[month]' checked='isChecked('$row[month]',$fees_month)' >". $row['month']."</th>";

$q = mysqli_query($conn,"SELECT * FROM fees WHERE registration_number='$qry[registration_number]'");

while ($info = mysqli_fetch_array($q)) {
    $fees_month = explode(", ", $info['fees_month']);
}

function isChecked($val, $arr) {
    if (in_array($val, $arr)) {
        echo 'checked';
    }
}

3 个答案:

答案 0 :(得分:1)

$selected = array();
$pdo = new PDO('mysql:host=localhost;dbname=your_db', 'user', 'password');

$query = $pdo->prepare('
    SELECT fees_month 
      FROM fees 
     WHERE registration_number = :registration_number
');

$query->bindParam('registration_number', $qry[registration_number]);

while ($row = $query->fetch()) {
    $selected[] = $row['fees_month'];
}

$checked = in_array($active, $selected) ? 'checked="checked"' : '';
echo '<input type="checkbox" name="fees_month[]" ' . $checked . ' value="' . $active . '"/>';

// example for testing
$active = 1;
$selected = array(1, 10, 20);
$checked = in_array($active, $selected) ? 'checked="checked"' : '';

echo '<input type="checkbox" name="fees_month[]" ' . $checked . ' value="' . $active . '"/>';

答案 1 :(得分:0)

isChecked不是变量,所以变量替换在这里不起作用。

您必须执行以下操作:

rate1=less18*100/n;
rate2=nineteento35*100/n;
rate3=thirty6to60*100/n;
rate4=greater60*100/n;

代替。

答案 2 :(得分:0)

Html复选框发送值&#34; on&#34;提交时如果选中。如果您直接保存提交的值,则应检查该值是否已打开。

例如,变量$checkbox存储您从数据库中检索的值,您可以使用以下内容:

<?php $isChecked = $checkbox == 'on' ? 'checked="checked"' : '';
echo "<input type='checkbox' $isChecked>";
?>