CodeIgniter - это MVC, это означает, что вы должны поместить запрашиваемый код данных в модель и код для отображения объектов в представлении.Итак, первое, что вы должны сделать, это придумать структуру со всей информацией, которая вам нужна в представлении.В этом случае array
представляет год, содержащий arrays
, представляющий дни.Таким образом, в представлении вы можете проверить дату, проверяя содержимое $YOUR_ARRAY[$month][$day]
.
В вашей модели вы вызываете запросы, необходимые для заполнения этого массива.В Контроллере вы вызываете Модель для получения массива и передаете его в представление.
Ваш код в представлении будет выглядеть (отредактируйте соответствующим образом):
<?php $arr_months = array('Jan', 'Feb', 'Mar', ..., 'Dec'); ?>
<?php foreach($month in array_keys($YOUR_ARRAY)): ?>
<?php foreach($month in array_keys($YOUR_ARRAY)): ?>
<input type="checkbox" name="date[]" <?php if (isset($YOUR_ARRAY[$month][$day])) echo 'checked="checked"'; ?>><?php echo $arr_months[$month] . " " . $day; ?>
<?php endforeach; ?>
<?php endforeach; ?>
Ив вашей модели вы, вероятно, могли бы выполнить только один запрос, примерно так:
$YOUR_ARRAY = array(array()); // init your array
$result = mysql_query("SELECT wdt, date FROM workingdayteacher WHERE date LIKE '$year-%' AND teachername='$teacherid'");
while ($row = mysql_fetch_assoc($result)) {
list($year, $day, $month) = explode('-', $row['date']);
$YOUR_ARRAY[int($month)][int($day)] = TRUE;
}
Надеюсь, это поможет!