Проблема из-за внутреннего цикла.
Пожалуйста, попробуйте следующий код.Я просто создал массив для хранения лет, поступающих из базы данных, а затем проверил, существует ли $i
в $existing_years
, чтобы отметить опцию красным цветом.
<?php
$existing_years = [];
foreach ($year_reg as $year) {
$existing_years[] = date("Y", strtotime($year->date_created));
}
?>
Затем изменилась логика выпадающего меню.
<select class="form-control select search-input-select col-lg-9 required_fields yearSelection registered_year"
name="registered_year" style="border-color:red;">
<?php
echo '<option style="text-color:red;" selected disabled value>Select Year</option>';
// Sets the top option to be the current year. (IE. the option that is chosen by default).
$currently_selected = date('Y');
// Year to start available options at
$earliest_year = 2018;
// Set your latest year you want in the range, in this case we use PHP to just set it to the current year.
$latest_year = date('Y');
foreach (range($latest_year, $earliest_year) as $i) {
$selected = $i === $currently_selected ? ' selected="selected" ' : '';
$style = (in_array($i, $existing_years)) ? ' style="color:red;" ' : '';
$disabled = (in_array($i, $existing_years)) ? ' disabled ' : '';
echo '<option value="' . $i . '"' . $selected . $style . $disabled . '>' . $i . '</option>';
}
?>
</select>
Надеюсь, это поможет.