Codeigniter 2 foreach () - PullRequest
       1

Codeigniter 2 foreach ()

0 голосов
/ 08 февраля 2019

У меня есть <select> того года.Я хочу проверить зарегистрированные годы из базы данных.

Вот изображение.

enter image description here

тогда вот мой код в <select>

<select class="form-control select search-input-select col-lg-9 required_fields yearSelection registered_year" name="registered_year" style="border-color:red;">
   <?php
      // 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'); 
      echo '<option style="text-color:red;" selected disabled value>Select Year</option>';

      foreach ( range( $latest_year, $earliest_year ) as $i ) 
      {
         foreach($year_reg as $year)
         {
            $reg = date("Y", strtotime($year->date_created));

            if($reg == $i){
               echo '<option style="color:red;" value="'.$i.'"'.($i === $currently_selected ? ' selected="selected"' : '').' disabled>'.$i.'</option>';
            } else {
               echo '<option value="'.$i.'"'.($i === $currently_selected ? ' selected="selected"' : '').' >'.$i.'</option>';
            }
         }
      }
      ?>

</select>

Таким образом, когда совпадают годы из базы данных и самые ранние - последние годы, он становится disabled и окрашивается в красный цвет.

Отображается 2019(w/ red text), 2019, 2018, 2018(w/ red text)

теперь моя проблема это отображает несколько данных.В чем проблема?

1 Ответ

0 голосов
/ 08 февраля 2019

Проблема из-за внутреннего цикла.

Пожалуйста, попробуйте следующий код.Я просто создал массив для хранения лет, поступающих из базы данных, а затем проверил, существует ли $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>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...