Преобразование массива в строку (поиск по codeigniter) - PullRequest
0 голосов
/ 10 мая 2018

У меня проблема с поиском в моем скрипте. Проблема в том, что я хочу создать фильтр. Фильтр - это выпадающее меню, и я ввожу данные из этого выпадающего меню в массив. Я думаю, что это проблема, но я не знаю, как ввести его по-другому.

Или как передать данные из моей модели как массив, а не как объект. (Думаю это объект)

Мой поиск:

          <?php echo form_open("otk/triedit", 'class="form-inline"'); ?>
          <th scope="col"></th>
          <th scope="col">ČÍSLO ZÁKAZKY</th>
          <th scope="col"><?php echo form_dropdown(['class' => 'form-control', 'name' => 'p'], $pozicia); ?>POZÍCIA</th>
          <th scope="col"><?php echo form_dropdown(['class' => 'form-control', 'name' => 's'], $stav); ?>STAV</th>
          <th scope="col">PORADOVÉ ČÍSLO</th>
          <th scope="col"><?php echo form_dropdown(['class' => 'form-control', 'name' => 'st'], $technologia); ?>TECHNOLÓGIA</th>
          <th scope="col"><?php echo form_dropdown(['class' => 'form-control', 'name' => 'd'], $datum); ?>DÁTUM</th>
          <th scope="col">DOKUMENT</th>
          <th scope="col"><?php echo form_dropdown(['class' => 'form-control', 'name' => 'z'], $zariadenie); ?>ZARIADENIE</th>
          <th scope="col">OPERÁTOR</th>
          <th scope="col"><center></center></th>
          <?php echo form_submit(['type' => 'submit', 'class' => 'btn btn-warning', 'value' => 'Hľadať']); ?>
          <?php echo form_close(); ?>

Мой контроллер:

function triedit()
    {
        $this->load->model('base_model');

    $udaje = array(
        'hladat' => $this->input->post('p'),
        'hladat' => $this->input->post('s'),
        'hladat' => $this->input->post('st'),
        'hladat' => $this->input->post('d'), 
        'hladat' => $this->input->post('z')
    );

    $keyword    =   $udaje;
    $data['resulte']    =   $this->base_model->triedit($keyword);
    $this->load->view('base_triedit_view',$data);
}

Моя модель:

function triedit($keyword)
    {
        $this->db->select('*');
        $this->db->from('otk');
        $this->db->like('ckod_otk',$keyword);
        $this->db->join('technologia', 'technologia.id_technologia = otk.technologia_otk', 'left');
        $this->db->join('zariadenie', 'zariadenie.id_zariadenie = otk.zariadenie_otk', 'left');
        $this->db->join('zamestnanci', 'zamestnanci.id_zamestnanci = otk.operator_otk', 'left');
        $this->db->join('stav', 'stav.id_stav = otk.stav_otk', 'left');
        $query  =   $this->db->get();
        return $query->num_rows();
    }

И мой предварительный просмотр моего вида:

<?php if(is_array($resulte)): ?>
        <?php 
            foreach ($resulte as $row) {?>
        <tr>
          <td></td>
          <td><?php echo $row->czakazky_otk; ?></td>
          <td><?php echo $row->pozicia_otk; ?></td>
          .....
          <?php } ?>
     <?php endif; ?>

1 Ответ

0 голосов
/ 10 мая 2018

насколько я понимаю вашу проблему

Формат параметров данных для form_dropdown всегда в array альтернативы нет, если вы используете form_dropdown

Если вы хотите, чтобы ваша модель возвращала данные в виде массива

Сделай так:

function triedit($keyword)
{
    $this->db->select('*');
    $this->db->from('otk');
    $this->db->like('ckod_otk',$keyword);
    $this->db->join('technologia', 'technologia.id_technologia = otk.technologia_otk', 'left');
    $this->db->join('zariadenie', 'zariadenie.id_zariadenie = otk.zariadenie_otk', 'left');
    $this->db->join('zamestnanci', 'zamestnanci.id_zamestnanci = otk.operator_otk', 'left');
    $this->db->join('stav', 'stav.id_stav = otk.stav_otk', 'left');
    $query = $this->db->get();
    if ($query->num_rows() > 0 )
    {
       return $query->result_array();
    }
}

Итак, изменения в представлении:

<?php if(is_array($resulte)): ?>

<?php 
    foreach ($resulte as $row) {?>
    <tr>
      <td></td>
      <td><?php echo $row['czakazky_otk']; ?></td>
      <td><?php echo $row['pozicia_otk']; ?></td>
      ..............
<?php } ?>
<?php endif; ?>

Для более: https://www.codeigniter.com/user_guide/database/results.html#result-arrays

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