Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php表单复选框='$变量';_Php_Forms_Checkbox - Fatal编程技术网

php表单复选框='$变量';

php表单复选框='$变量';,php,forms,checkbox,Php,Forms,Checkbox,我似乎无法完成这件事。我从表中获取数据,如果列中的值=y,则必须选中复选框,如果列中的值=n,则不得选中复选框,所有复选框保持选中状态,即使只有第一行的列=y <?php session_start(); include 'datalogin.php'; $sel_course_id = 2; $sel_date_1 = '2012-05-21'; $sel_date_2 = '2012-05-22'; echo "<form ac

我似乎无法完成这件事。我从表中获取数据,如果列中的值=y,则必须选中复选框,如果列中的值=n,则不得选中复选框,所有复选框保持选中状态,即使只有第一行的列=y

<?php
session_start();
    include 'datalogin.php';
    $sel_course_id = 2;
    $sel_date_1    = '2012-05-21';
    $sel_date_2    = '2012-05-22';
    echo "<form action='' method='post'>";
    echo "<strong>Completed the course</strong>";

    $sql1 = "SELECT * FROM trn WHERE course_id = '$sel_course_id' AND date_1 = '$sel_date_1' and date_2 = '$sel_date_2'";
    $res1 = mysql_query($sql1);
    while ($row1 = mysql_fetch_assoc($res1)) {
        $rowid1           = $row1['id'];
        $uid1              = $row1['usr_id'];
        $certificate_name1 = $row1['certificate_name'];
        $course_completed1 = $row1['course_completed'];

            $sql2 = "SELECT * FROM ex_usrs WHERE id = '$uid1'";
            $res2 = mysql_query($sql2);
            while ($row2 = mysql_fetch_assoc($res2)) {
                $fn2 = $row2['firstname'];
                $ln2 = $row2['lastname'];
            } 
            $checked2 = "";
            if ($course_completed1 == y) {
                $checked2 = "checked";
            } 
            if ($course_completed1 == n) {
                $checked2 = "";
            } 
            echo "<input name='question[$rowid1][]' type='checkbox'  checked='$checked2' value='1' />$fn2 $ln2";
echo "</br>";
   } 
    echo "</form>";
?>

对字符串使用引号:

if ($course_completed1 == "y") {
    $checked2 = "checked";
} 
if ($course_completed1 == "n") {
    $checked2 = "";
} 

checked='$checked2'
应该是普通的
$checked2
,它是一个布尔属性

(除非您正在编写XHTML,在这种情况下,在您测试
if($course\u completed 1==“y”){
之后,还应为其指定值
'checked=“checked”


您的测试还应该检查字符串(
“y”
)而不是常量(
y
)。

如前所述,您需要引用
y
n
来比较字符串值。但即使只选中了
项=“
”,也会导致您的复选框被选中。请尝试这样做:

if ($course_completed1 == "y") {
    $checked2 = "checked='checked'";
} 
elseif ($course_completed1 == "n") {
    $checked2 = "";
}

echo "<input name='question[$rowid1][]' type='checkbox' $checked2 value='1' />$fn2 $ln2";
if($course\u completed1==“y”){
$checked2=“checked='checked'”;
} 
elseif($course_Completed 1==“n”){
$checked2=“”;
}
回声“$fn2$ln2”;