用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4745|回复: 9
收起左侧

错误处理问题

[复制链接]
发表于 2008-7-19 11:28:40 | 显示全部楼层 |阅读模式
如何处理如下错误
A PHP Error was encountered
Severity: Notice

Message: Undefined variable: national

Filename: views/addmz.php

Line Number: 17

单独运行控制器调用addmz视图不报错,
在框架里运行该视图出现上面的错误.
请高手帮助.

代码如下:
<?php  if(is_array($national)) {foreach ($national as $row):?>
<?php endforeach;}?>
发表于 2008-7-19 11:49:59 | 显示全部楼层
运行?
这个是说你的变量未定义,也就是说视图里的这个变量你没通过 load->view() 传进去。视图里的变量“必须”通过控制器传递!!
 楼主| 发表于 2008-7-21 08:01:28 | 显示全部楼层
我是通过控制器传递的呀,通过控制器传递的数组.
代码如下:
$viewdata['national'] = $query->result();
$this->load->view('addmz',$viewdata);
发表于 2008-7-21 09:08:11 | 显示全部楼层
需要通过数组传递比如
$data['aaa'] = 'test';
$this->load->view('view',$data);

在视图里面使用
<?= $aaa?>
这样就没问题了
发表于 2008-7-21 09:30:09 | 显示全部楼层
是的,要搞清你传递的数组的结构!
 楼主| 发表于 2008-7-21 10:07:57 | 显示全部楼层
我用了你说的方法,不好用.
我将查询结果放到数组中,然后传弟到视图中.
控制器代码:
          $this->db->select('name');
                $this->db->from('national');
                $this->db->order_by('id','desc');
                $query=$this->db->get('national');
                $viewdata['national'] = $query->result();
                $this->load->view('addmz',$viewdata);
视图:
<?=$national?>
发表于 2008-7-21 13:46:01 | 显示全部楼层
还是提示变量未定义??
 楼主| 发表于 2008-7-21 14:09:53 | 显示全部楼层
是啊,怎么帮呀????????????
发表于 2008-7-21 17:15:38 | 显示全部楼层
咳,确定 $query->result(); 有输出非false的内容吗?
发表于 2008-7-21 17:19:38 | 显示全部楼层
原帖由 沧蓝 于 2008-7-21 17:15 发表
咳,确定 $query->result(); 有输出非false的内容吗?


没错,你把$viewdata['national'] = $query->result();打印出来看看就知道了。:-)。

本版积分规则