|
这几天练习CI做一个CMS后台,在添加栏目下拉列表时遇到了一个并不影响运行的PHP错误,一直没解决,故想到拿来和大家一起讨论,请高手给看看,先表示感谢了!
是一个二级栏目添加问题:
我在控制器中写有一条获取数据库内容的语句:
$data['getnav']=$this->Mcms->get_nav();
调用模型Mcms.php中的方法get_nav(),将返回的数据存入数组变量$data['getnav']
视图文件createcate.php接收传来的变量$getnav
通过print_r($getnav);看到其内容如下(给大家提供参考):
Array
(
[0] => Array
(
[mid] => 1
[name] => 教育技术应用
)
[1] => Array
(
[mid] => 2
[name] => PHP网站设计
)
[2] => Array
(
[mid] => 4
[name] => 多媒体技术应用
)
[3] => Array
(
[mid] => 5
[name] => 程序设计语言
)
[4] => Array
(
[mid] => 6
[name] => PHPer的生活趣事
)
[5] => Array
(
[mid] => 7
[name] => 胡乱加一个栏目
)
[6] => Array
(
[mid] => 8
[name] => 再来一个栏目
)
)
为了能使用CI的form_dropdown('nav',$opt);将栏目名name的值放到一个下拉列表中,我需要把这个数组中mid的值作为一个新数组的索引,我这样构造新数组:
foreach($getnav as $row)
{
$opt[$row['mid']] .= $row['name'];
}
print_r($opt);显示:
Array
(
[1] => 教育技术应用
[2] => PHP网站设计
[4] => 多媒体技术应用
[5] => 程序设计语言
[6] => PHPer的生活趣事
[7] => 胡乱加一个栏目
[8] => 再来一个栏目
)
这正是我所需要的!(但报错了,如果有其他办法实现这一步也是我请求帮忙之所在)
应用到下拉列表中也很成功:
echo form_open('admin/createcategory');
echo form_dropdown('nav',$opt);
echo form_input('name');
echo form_submit('','创建');
echo form_close();
生成的Web页完全符合预期的要求:源代码中“栏目名称和栏目id(这里是value的值)是一一对应的”,(栏目id=3是我事先有意删除的):
<form action="http://localhost/ci_/index.php/admin/createcategory" method="post">
<select name="nav">
<option value="1">教育技术应用</option>
<option value="2">PHP网站设计</option>
<option value="4">多媒体技术应用</option>
<option value="5">程序设计语言</option>
<option value="6">PHPer的生活趣事</option>
<option value="7">胡乱加一个栏目</option>
<option value="8">再来一个栏目</option>
</select>
<input type="text" name="name" value="" />
<input type="submit" name="" value="创建" />
</form>
一切都那样的如愿,可是非常遗憾的是他同时报错,诸如下面的七个无效索引错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined index: 5
Filename: admin/createcate.php
Line Number: 7
既然有错,为什么还正常运行,这个错误怎样排除或修改?
有没有别的好办法,使我能用两个数组的元素值构造出一个新数组(即:新数组的键值是其中一个数组的元素值,新数组的元素值是另一个数组的元素值)
请高手帮着解决或出招修改一下。 |
|