Устранить опцию Выбранный, если уже выбран в базе данных ...? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть поле выбора с опциями до 20, например, если опция 5 или любая другая выбрана и сохранена в базе данных в определенном столбце, она не будет отображаться в следующий раз ...
, пожалуйста, укажите мне

<select class="form-control text-center" name="code" id="Code"    >
        <option value="">Select Code</option>
        <?php for($i = 1; $i <= 20; $i++){ ?>
            <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
        <?php } ?>
</select>

Ответы [ 3 ]

0 голосов
/ 29 апреля 2019

Вы можете подойти к нему следующим образом

$availableOption = range(1,20);
$selectedOrInDb  = [5,6,8,9]; // Selected OR from DB
$remaining = array_diff($availableOption, $selectedOrInDb);

Теперь вы можете использовать $remaining для циклического перебора

<select class="form-control text-center" name="code" id="Code"    >
    <option value="">Select Code</option>
    <?php foreach($remaining as $key => $value){ ?>
        <option value="<?php echo $value; ?>"><?php echo $value; ?></option>
    <?php } ?>
</select>
0 голосов
/ 29 апреля 2019

Контроллер:

function index(){
   //below code should be in Model this is only for example
   $this->db->select('code');
   $query = $this->db->get_where('hr_levels', array('created_by' => $_SESSION['username']));
   if ($query->num_rows() > 0) {
        $code = $query->row('code');
   } else {
        $code = 0;
   }
   $option = array();
   for($i=1;$i<=20;$i++){
      if ($code != $i) {//no need to add if in view, just pass the data to view
         $option[$i] = $i;
      }
   }
   $data['options'] = $option;
   $this->load->view('option_view',$data);
}

вид:

<select class="form-control text-center" name="code" id="Code"    >
    <option value="">Select Code</option>
     <?php foreach($options as $key => $value){ 
           <option value="<?php echo $key; ?>"><?php echo $value; ?></option>
     <?php } ?>
</select>
0 голосов
/ 29 апреля 2019

Контроллер

public function get_selected(){
    $this->load->model('model_name');
    $data['selected'] = $this->model_name->function_name($_SESSION['username']); 
    //Already saved values will be get on the basis of any condition

    return $this->load->view('file.php');
}

Модель

public function function_name($username){
    return $this->db->get_where('table', ['created_by' => $username])->row()->value;
}

Теперь вы получаете уже выбранное значение в $selected

<select class="form-control text-center" name="code" id="Code"    >
    <option value="">Select Code</option>
     <?php for($i = 1; $i <= 20; $i++){ 
              if($i != $selected)?>
                 <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
     <?php } } ?>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...