【发布时间】:2016-09-05 02:20:44
【问题描述】:
我的代码有问题。我收到如下错误。
此代码中的错误 $vf=$bn[1];
$this->_data['kabupaten'] -> 以 html 形式发布
这个错误:
严重性:通知
消息:未定义的偏移量: 1
文件名:mustahik/mustahik_controller.php
行 号码:1108
我的控制器代码如下
$this->_data['kabupaten'] = "";
if($this->_data['kab'] != $this->_data['kabupaten']) {
$vf = $this->_data['kab'] ;
$cf = $vf;
echo "kk".$cf;
} else {
$bn = explode('.',($this->_data['kabupaten']), 3);
$vf = $bn[1]; /// error here
$cf = $vf;
echo "kk".$cf;
}
我的观点是在下面
<tr>
<td>Kab/Kota<span class="red">*</span></td>
<td>
<input type="text" name="kab" value="<?php echo $survey['kabupaten'];?>">
<select name="kabupaten" id="kabupaten" style="width: 100%;" class="select2" onchange="get_districts(this.value);" >
</select>
<option value="<?php echo $survey['kabupaten'];?>"></option>
</td>
</tr>
有人知道问题出在哪里吗?
【问题讨论】:
-
首先检查它是否确实有索引 1
-
发生错误时
$this->_data['kabupaten']中的数据是什么?从它看来$this->_data['kabupaten']不包含.所以explode只返回一个数组,其中一个元素是原始字符串 -
等一下。您将
$this->_data['kabupaten']设置为空字符串$this->_data['kabupaten'] = "";。这意味着当它进入你的 if 语句时,它总是一个空字符串,所以你在做$this->_data['kab'] != ""和$bn=explode('.',"", 3); -
对不起伙计们,我编辑问题..我正在添加描述 html。
-
您编辑的@tara 没有改变任何东西,我的评论仍然有效。
$this->_data['kabupaten']在到达 if 语句之前设置为空字符串,因此您正在对没有点的字符串进行分解,因此它将始终返回一个只有 1 个元素的数组,该元素是一个空字符串。explode的第三个参数不能保证你array(3)。请参阅this example,注意只有第三个 var_dump 返回一个array(3)。
标签: php codeigniter