【问题标题】:php form checkbox='$variable'php表单复选框='$变量'
【发布时间】:2012-05-22 14:48:29
【问题描述】:

我似乎无法完成这项工作。我从表中获取数据,如果列中的值 = 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>";
?>

【问题讨论】:

    标签: php forms checkbox


    【解决方案1】:

    对字符串使用引号:

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

    【讨论】:

      【解决方案2】:

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

      (除非您正在编写 XHTML,在这种情况下,在您测试 if ($course_completed1 == "y") { 之后,它也应该被赋予值 'checked="checked")。

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

      【讨论】:

        【解决方案3】:

        如前所述,您需要引用 yn 来比较字符串值。但即使只有checked="" 也会导致您的复选框被选中。试着像这样表达你的陈述:

        if ($course_completed1 == "y") {
            $checked2 = "checked='checked'";
        } 
        elseif ($course_completed1 == "n") {
            $checked2 = "";
        }
        
        echo "<input name='question[$rowid1][]' type='checkbox' $checked2 value='1' />$fn2 $ln2";
        

        【讨论】:

          猜你喜欢
          • 2020-03-30
          • 1970-01-01
          • 2017-07-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多