【问题标题】:Codeigniter set_value undefined variableCodeigniter set_value 未定义变量
【发布时间】:2013-04-28 21:01:30
【问题描述】:

我在 CI 控制器中有这段代码:

if ($this->form_validation->run() === FALSE)
        {
            $data['category'] = $this->categories_model->get_categories($id);
            $this->load->view("templates/admin_header", $data);
            $this->load->view("categories/edit", $data);
            $this->load->view("templates/admin_footer", $data); 
        }
        else
        {
            $array = array('id'=>$id, 'category_name' => $this->input->post('category_name'));

            $this->categories_model->update($array);
            $this->load->view("templates/admin_header");
            $this->load->view("categories/edit");
            $this->load->view("templates/admin_footer");
        }

在视图中我有这个:

<input type="text" class="text" name="category_name" value="<?php echo set_value('category_name', $category['category_name']); ?>"/>

当我第一次加载视图时,它会从数据库中获取 category_name 值并将其显示在输入字段中。但是当我发布表单时,它会更新数据库,但是当发布后视图加载时,它会显示这个错误:

严重性:通知 消息:未定义变量:类别

它会破坏输入字段的 html。

【问题讨论】:

  • 因为您仅在表单未验证的情况下才将 $category 发送到您的视图中。将 $data['category'].. 放在条件之外。
  • 我知道,但在这种情况下,即使我发布表单,我也会查询数据库。在这种情况下,我想显示帖子中的值。如果不在条件范围内,它就可以正常工作...

标签: php codeigniter


【解决方案1】:
if ($this->form_validation->run())
{
    $array = array('id'=>$id, 'category_name' => $this->input->post('category_name'));

    $this->categories_model->update($array);        
}

$data['category'] = $this->categories_model->get_categories($id);  

$this->load->view("templates/admin_header", $data);
$this->load->view("categories/edit");
$this->load->view("templates/admin_footer");

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多