Сообщение: неопределенное смещение: 1 Codeigniter - PullRequest
0 голосов
/ 26 февраля 2020

, я пытаюсь вызвать критерии и подкритерии:

Я пытаюсь вызвать id_kriteria, критерии nama_kriteria из tb_kriteria для tittle, а затем я вызываю id_kriteria, namasubkriteria для параметра sub kriteria, это мой код просмотра :

<?php 
                    $index =0;          
                    for( $i =1; $i <= sizeof($subkriteria_); $i++){
                    ?>
                    <div class="form-group">
                        <label class="control-label col-xs-3"><?php echo $subkriteria_[$i][0]['nama_kriteria'] ?></label> // is my error
                        <div class="col-xs-8">
                                <input type="hidden" name="status_pemeliharaan" value="1" class="form-control">
                                <input type="hidden" name="id_kriteria[]" value="<?php echo $subkriteria_[$i][$index]['id_kriteria'] ?>" class="form-control"> // is my error
                            <select class="form-control"  name="isi_kriteria[]" required>
                                <option>Pilih Sub Kriteria</option>
                                <?php $no = 1; foreach ($subkriteria_[$i] as $data)     { ?>
                                <option value="<?php echo $data['value'] ?>"><?php echo $data['namasubkriteria'] ?></option>
                                <?php  $no++; } ?>
                            </select>
                        </div>
                    </div>
                    <?php } ?>

это код моего контроллера:

function Index()
    {
      $data['data'] = $this->PemeliharaanModel->Get();
      if($this->session->userdata['logged_in']['level']=="1"){
      $id_merk = $this->uri->segment(3);
      $data['data'] = $this->PemeliharaanModel->Get();
      $data['kendaraan_'] = $this->PemeliharaanModel->GetKendaraan();
      // $data['kriteria_'] = $this->PemeliharaanModel->GetKriteria();
      $data['subkriteria_'] = $this->PemeliharaanModel->GetSubKriteria();
      $this->template->load('template', 'Saw/DataPemeliharaan', $data);
      }else{
        $data['error'] = 'Anda tidak dapat mengakses halaman tersebut.';
        $this->template->load('template', 'error', $data);
      } 
    }

и это код моей модели:

public function GetSubKriteria() {
    $this->db->select('*');
    $this->db->from('tb_kriteria');
    $query = $this->db->get();
    $krit = $query->result();
    $data = array();
    $index = 0;
        foreach($krit as $x){
            // $data[][] = array(
            //     'id_kriteria'           => $x->id_kriteria,
            //     'nama_kriteria'         => $x->nama_kriteria,
            // );
        $id_kriteriax = $this->db->where('id_kriteria', $x->id_kriteria);
        $this->db->select('*');
        $this->db->from('tb_subkriteria');
        $query = $this->db->get();
        $id_kriteriax = $query->result();
            foreach($id_kriteriax as $z){
                $idKriteriaKey = $z->id_kriteria;
                $data[$idKriteriaKey][] = array(
                    'id_kriteria'           => $x->id_kriteria,
                    'nama_kriteria'         => $x->nama_kriteria,
                    'id_subkriteria'        => $z->id_subkriteria,
                    'namasubkriteria'       => $z->namasubkriteria,
                    'value'                 => $z->value
                );
            }
            $index++;
        }
        return $data;
        // var_dump($data);
    }

, но если я попробую этот код, сообщение об ошибке : Неопределенное смещение: 1

спасибо за ваш ответ ...

1 Ответ

0 голосов
/ 26 февраля 2020

Если вы используете идентификатор столбца таблицы в качестве ключа индекса, вам не следует полагаться на for() l oop для получения значения индекса, поскольку оно не всегда имеет последовательное значение. Вместо этого вы можете использовать foreach(), настроить модель и просмотреть коды, как показано ниже.

модель :

public function GetSubKriteria() {
    $this->db->select('*');
    $this->db->from('tb_kriteria');
    $query = $this->db->get();
    $krit = $query->result();
    $data = array();
    $index = 0;
        foreach($krit as $kr_key => $x){
            $data[$kr_key] = array(
                'id_kriteria'           => $x->id_kriteria,
                'nama_kriteria'         => $x->nama_kriteria,
            );
            $id_kriteriax = $this->db->where('id_kriteria', $x->id_kriteria);
            $this->db->select('*');
            $this->db->from('tb_subkriteria');
            $query = $this->db->get();
            $id_kriteriax = $query->result();
            foreach($id_kriteriax as $z){
                // $idKriteriaKey = $z->id_kriteria;
                $data[$kr_key]['subkriteria'][] = array(
                    // 'id_kriteria'           => $x->id_kriteria,
                    // 'nama_kriteria'         => $x->nama_kriteria,
                    'id_subkriteria'        => $z->id_subkriteria,
                    'namasubkriteria'       => $z->namasubkriteria,
                    'value'                 => $z->value
                );
            }
            $index++;
        }
        return $data;
        // var_dump($data);
}

просмотр :

    <?php
    $index =0;          
    foreach ($subkriteria_ as $kr_key => $kriteria) {
    ?>
    <div class="form-group">
        <label class="control-label col-xs-3"><?php echo $kriteria['nama_kriteria'] ?></label> // is my error
        <div class="col-xs-8">
                <input type="hidden" name="status_pemeliharaan" value="1" class="form-control">
                <input type="hidden" name="id_kriteria[]" value="<?php echo $kriteria['id_kriteria'] ?>" class="form-control"> // is my error
            <select class="form-control"  name="isi_kriteria[]" required>
                <option>Pilih Sub Kriteria</option>
                <?php $no = 1; foreach ($kriteria['subkriteria'] as $data)     { ?>
                <option value="<?php echo $data['value'] ?>"><?php echo $data['namasubkriteria'] ?></option>
                <?php  $no++; } ?>
            </select>
        </div>
    </div>
    <?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...