php - 遇到错误严重性:非法字符串偏移 Codeigniter
问题描述
鉴于此,我尝试调用 kriteria 和 sub kriteria:
我尝试从 tb_kriteria 调用 id_kriteria, nama_kriteria kriteria 作为标题,然后我调用 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);
这个数组只是显示一个子标准,并不是所有的子标准数据都显示在数组中
谢谢你的回复...
解决方案
您应该在控制器和视图中使用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;
看法
<?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 } ?>
推荐阅读
- android - 如何在 Android 上更改视频创建/修改日期
- c# - 如何在第二个线程中实例化 DBContext?
- android - 从新的 Google Play 控制台下载派生的 APK
- excel - 将 With-function 中的内部颜色应用于过滤范围
- javascript - 在 wordpress 中转换后的 Barba.js 重新初始化页面
- java - java.lang.IllegalArgumentException:dataSource 或 dataSourceClassName 或 jdbcUrl 是必需的
- python - Pandas:合并多个 describe() 统计信息
- java - 在Java中通过TCP发送int或字节数组之间的性能?
- python - 将 .txt 字典转换为跳过一些值的数据框
- c - 如何使用地址在函数中创建新变量