遇到错误,严重性:ilegal字符串偏移Codeigniter

问题描述 投票:0回答:1

鉴于,我尝试调用kriteria和sub kriteria:

我尝试从tb_kriteria中调用id_kriteria,nama_kriteria kriteria作为标题,然后为选项sub kriteria调用id_kriteria,namasubkriteria

型号:

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);,则此数组仅显示一个子条件,而不是在数组中显示所有子条件数据

感谢您的回应...

php mysql arrays codeigniter var-dump
1个回答
0
投票
您应该使用
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;

© www.soinside.com 2019 - 2024. All rights reserved.