2012-05-22 4 views
1

Я не могу сделать это. Я получаю данные из таблицы, если значение в столбце = y, тогда флажок должен быть установлен, если значение в столбце = n, флажок не должен быть установлен, все флажки остаются отмеченными, хотя только столбец первой строки = у

<?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>"; 
?> 

ответ

0

Как уже упоминалось, для сравнения значений строк необходимо указать y и n. Но даже при наличии 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"; 
2

Используйте кавычки для строк:

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

checked='$checked2' должны быть простыми $checked2, это логический атрибут.

(Если вы не пишете XHTML, в этом случае ему также должно быть присвоено значение 'checked="checked" после того, как вы проверите if ($course_completed1 == "y") {).

Ваши тесты также должны проверять строки ("y"), а не константы (y).