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

Undefined variable错误如何解决?

[复制链接]
发表于 2015-4-22 11:28:56 | 显示全部楼层 |阅读模式
本帖最后由 Closer 于 2015-4-22 11:38 编辑
HTML复制代码
<form action="<?php echo site_url('admin/article/edit') ?>" method="POST" enctype="multipart/form-data">
<table class="table">
    <tr >
        <td class="th" colspan="10">编辑文章</td>
    </tr>
    <tr>
        <td>标题</td>
        <td>
            <input type="hidden" name="aid" value="<?php echo $article[0]['aid'] ?>">
            <input type="text" name="title" value="<?php echo $article[0]['title'] ?>"/>
            <?php echo form_error('title', '<span>', '</span>') ?>
        </td>
    </tr>
    <tr>
        <td>类型</td>
        <td>
            <input type="radio" name="type" value="0" <?php if ($article[0]['type'] == 0) echo("checked"); ?>/> 普通
            <input type="radio" name="type" value="1" <?php if ($article[0]['type'] == 1) echo("checked"); ?>/> 热门
        </td>
    </tr>
    <tr>
        <td>栏目</td>
        <td>
            <select name="cid" id="">
                <option><?php echo $article[0]['cname']  ?></option>
                <?php foreach($category as $v): ?>
                <option value="<?php echo $v['cid'] ?>"<?php echo set_select('cid', $v['cid'])?>><?php echo $v['cname'] ?></option>
                <?php endforeach ?>
            </select>
        </td>
    </tr>
    <tr>
        <td>缩略图</td>
        <td>
            <input type="file" name="thumb"/> <span>当前缩略图:<img src="<?php echo base_url() . 'uploads/'. $article[0]['thumb']?>" /></span>
        </td>
    </tr>
    <tr>
        <td>摘要</td>
        <td>
            <textarea name="info" id="" style="width:550px;height:160px;"><?php echo $article[0]['info'] ?></textarea><?php echo form_error('info', '<span>', '</span>') ?>
        </td>
    </tr>
    <tr>
        <td>内容</td>
        <td>
            <textarea name="content" id="content" style="width:550px;height:500px;"><?php echo $article[0]['content'] ?></textarea>
            <?php echo form_error('content', '<span>', '</span>') ?>
        </td>
    </tr>
    <tr>
        <td colspan="10"><input type="submit" class="input_button" value="发布"/></td>
    </tr>
</table>
</form>
复制代码


提交时总报以下错误:
A PHP Error was encounteredSeverity: Notice
Message: Undefined variable: article
Filename: admin/edit_article.html
Line Number: 32

">  
A PHP Error was encounteredSeverity: Notice
Message: Undefined variable: article
Filename: admin/edit_article.html
Line Number: 33

"/>


初学CI框架,求解原因?

 楼主| 发表于 2015-4-22 14:46:05 | 显示全部楼层
本帖最后由 pjason66 于 2015-4-22 14:48 编辑

public function edit(){
                $this->load->library('form_validation');
                $status = $this->form_validation->run('article');

                if($status){
                        $this->load->model('article_model', 'art');
                        $aid= $this->input->post('aid');

                        $data = array(
                                'title'        => $this->input->post('title'),
                                'type'        => $this->input->post('type'),
                                'cid'        => $this->input->post('cid'),
                                'thumb'        => $info['file_name'],
                                'info'        => $this->input->post('info'),
                                'content'=> $this->input->post('content'),
                                'time'        => time()
                                );       

                        $data['article'] = $this->art->up_article($aid,$data);
                        success('admin/article/index', '发表成功');
                } else {
                        $this->load->helper('form');
                        $this->load->view('admin/edit_article.html');
                }
        }

提交后动作,不知道哪里有问题?
发表于 2015-4-22 14:53:20 | 显示全部楼层
pjason66 发表于 2015-4-22 14:46
public function edit(){
                $this->load->library('form_validation');
                $status = $this->form_validatio ...

你該看的是出錯誤的 edit_cate.html
話說 view 不是都用 PHP 嗎 ? 第一次看用 html 的
发表于 2015-4-22 14:57:46 | 显示全部楼层
本帖最后由 Closer 于 2015-4-22 15:02 编辑

我有注意到你用 form_validation
若你失敗後導向 $this->load->view('admin/edit_article.html');
但你這個頁面有使用 $data['article'] = $this->art->up_article($aid,$data);
也許你在 view 端有取 $article 這個變量
如果拿不到,就該做一個 isset() 的判斷
 
发表于 2015-4-22 11:41:42 | 显示全部楼层
不是寫了沒取到 $article 的變數值?
 楼主| 发表于 2015-4-22 14:32:04 | 显示全部楼层
值是取到了的,并且显示出来了,但提交的时候就报这个错误
发表于 2015-4-22 14:37:51 | 显示全部楼层
那就表示你提交過去的網址 site_url('admin/article/edit')
裡面有用到一樣的名稱,然後沒取到這個變數的數據
 楼主| 发表于 2015-4-22 16:50:38 | 显示全部楼层
就是form_validation出的问题,添加时验证没有问题,但变成修改时的验证就出了问题,现在我也没有找到解决办法
发表于 2015-4-22 16:58:41 | 显示全部楼层
pjason66 发表于 2015-4-22 16:50
就是form_validation出的问题,添加时验证没有问题,但变成修改时的验证就出了问题,现在我也没有找到解决 ...

估計不是 form_validation
是你的邏輯問題

你 if 的下區塊沒有設置 $data['article']
卻又想在 vlew 端用 $article 呼叫他
當然會出錯!
 
 楼主| 发表于 2015-4-22 17:09:01 | 显示全部楼层
设置$data['article']了的,而且数据显示出来了,是提交时验证返回值是false

本版积分规则