Когда вы отображаете свою страницу (в своем первом разделе кода), в какой-то момент вы делаете это:
echo "<td><input name='check[]' type=checkbox value=c".$course[$x]->courseId."-o".$subobj[$j]['SubObjId']." id=checked></td>";
Значение установлено на:
value=c"c.$course[$x]->courseId."-o".$subobj[$j]['SubObjId']";
Это значениегде вы получаете проверенное или нет значение, которое вы упомянули в комментариях (например, c1-o1.1
).
Верно.Поэтому, прежде чем сделать это echo
, добавьте новое условие if
.
$value = "c$course[$x]->courseId" . "-o$subobj[$j]['SubObjId']";
if (verify_checked($value)) {
$checked_code = "checked=\"checked\"";
}
else {
$checked_code = "";
}
echo "<td><input name='check[]' type=checkbox value=$value id=checked $checked_code ></td>";
Функция verify_checked(value)
делает (из того, что я понимаю в вашей базе данных, вы сохраняете «расположение сетки» отмеченных элементов):
function verify_checked($value)
{
// Connect to the database if needed
// Perform: SELECT count($value) FROM Report
// If the result is >0, return TRUE
// Else return FALSE
}
- Идеяздесь запрос к базе данных каждый раз, когда вы собираетесь повторить элемент
<input>
. - Примечание: для конкатенации текста я считаю более разборчивым ставить пробелы вокруг
.
, чтобы четко разделить то, что является частью текста и точкой конкатенации. - Как упоминалось ранее,отступ важен для понимания различных контекстов.Пока я не отступил в ваш код, я не понимал, как разные циклы работают по отношению к другим.