Обнаружена ошибка. Серьезность: недопустимое смещение строки. - PullRequest
1 голос
/ 27 февраля 2020

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

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

Модель:

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>
        <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">
            <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> // this my error
                <?php  $no++; } ?>
            </select>
        </div>
    </div>
    <?php } ?>

но я пытаюсь этот код, теперь показать ошибку при просмотре, Error was encountered Severity: ilegal string offset 'value' blabla

и если я попытаюсь var_dump($data);, этот массив просто покажет один подкритерий, не все данные подкритериев будут показаны в массиве

thx для вашего ответа ...

1 Ответ

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

Вы должны проверить, происходят ли данные или нет, используя empty () в контроллере и просмотреть

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();
            if(!empty($id_kriteriax)){
            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;

View

<?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>
    <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">
        <select class="form-control"  name="isi_kriteria[]" required>
            <option>Pilih Sub Kriteria</option>
            <?php $no = 1; 
            foreach ($kriteria['subkriteria'] as $data)     { 
            if(!empty($data)){
            echo '<option value="'.$data['value'].'">'.$data['namasubkriteria'].'</option> 
            <?php  $no++; } } ?>
        </select>
    </div>
</div>
<?php } ?>
...