0

美好的一天互联网。我正在使用 codeigniter 开发一个基本的 cms。我已经设置好了,所以它显示了我数据库中的数据。

这是我的控制器中前 2 页的代码

class Site extends CI_Controller {
public function index(){
    $this->home();
}

public function home(){
    $this->load->model("model_get");
    $data["results"] = $this->model_get->getData("home");
    $this->load->view("site_header");
    $this->load->view("site_nav");  
    $this->load->view("content_home", $data);
    $this->load->view("site_footer");
}

public function about(){
$this->load->model("model_get");
    $data["results"] = $this->model_get->getData("about");
    $this->load->view("site_header");
    $this->load->view("site_nav");  
    $this->load->view("content_about", $data);
    $this->load->view("site_footer");

}

这是从数据库中获取数据的模型

class Model_get extends CI_Model{
    function getData($page){
        $query = $this->db->get_where("pageData", array("page" => $page));
        return $query->result();
    }
}

这是输出数据库中数据的视图

<div id="content">
        <?php  

            foreach($results as $row){
                $title = $row->title;
                $text1 = $row->text1;
                $text2 = $row->text2;                   
            }

            echo heading($title, 1);

        ?>

        <p><?php echo $text1;  ?></p>
        <p><?php echo $text2;  ?></p>

它一直工作得很好,但我想使用一个表单来更改数据库中的数据。这是我的表单视图的代码

<div id="content">
<?php

    $this->load->helper("form");

    echo validation_errors();

    echo form_open("site/updatevalues");

    echo form_label("Heading", "title");

    $data = array(
                "name" => "title",
                "id" => "title",
                "value" => set_value("title"),
                "style" => "width:100%",
                "rows" => "rows:3"
            );



    echo form_textarea($data);


    echo form_label("Text 1", "text1");

    $data = array(
                "name" => "text1",
                "id" => "text1",
                "value" => set_value("text1"),
                "style" => "width:100%",
                "rows" => "rows:3"                  
            );

    echo form_textarea($data);

    echo form_label("Text 2: ", "text2");

    $data = array(
                "name" => "text2",
                "id" => "text2",
                "value" => set_value("text2"),
                "style" => "width:100%",
                "rows" => "rows:3"
            );

    echo form_textarea($data);

    echo form_submit("dataSubmit", "Submit");


    echo form_close();

?>

这是我的控制器中使用上述视图中的表单输入的代码片段

public function updatevalues(){
        $this->load->library("form_validation");

        $this->form_validation->set_rules("title", "Heading", "required|xss_clean");
        $this->form_validation->set_rules("text1", "Text 1", "required|xss_clean");
        $this->form_validation->set_rules("text2", "Text 2", "required|xss_clean");

        if($this->form_validation->run() == FALSE){
            $data ["success"] = "";
            $this->load->view("site_header");
            $this->load->view("site_nav");  
            $this->load->view("data_input", $data);
            $this->load->view("site_footer");
        } else {    
            echo $data["success"] = "The page has been updated";
            $this->load->view("site_header");
            $this->load->view("site_nav");  
            $this->load->view("data_input", $data);
            $this->load->view("site_footer");

            $this->load->model("model_update");

            $newRow = array(
                    "id" => "3",
                    "title" => set_value("title"),
                    "page" => "Contact Page",  **<---This was the problem**
                    "text1" => set_value("text1"),
                    "text2" => set_value("text2")
                );

            $this->model_update->update1($newRow);


        }

    }

这是处理更新数据库中数据的模型,我只是在这里使用第一个函数

class Model_update extends CI_Model{
    function update1($data){
    $this->db->update("pagedata", $data, "id = 3");     

    }

    function update2($data){
    $this->db->update_batch("pagedata", $data, "id");
    }

}

因此,经过几天的尝试,我终于得到它来更新数据库中的某些字段,这在理论上会更新视图中的输出,但现在它给了我这个错误消息:遇到 PHP 错误

严重性:通知

消息:未定义变量:标题

文件名:views/content_about.php

行号:10

它给出了我试图回显的所有变量的错误。我不明白,我没有触及要从数据库中显示的代码,现在我终于能够通过表单更改数据,变量突然未定义。如果有人可以帮助我,我将不胜感激。已经在这个单一的任务上工作了 2 周了!

编辑:当我写这篇文章时,我发现了问题并用箭头来识别它。页面数据必须是“关于”的,因为这就是 foreach 循环获取数据的方式。我不能发布这个,但也许这段代码会帮助别人。尽你所能享受互联网,你刚刚目睹了有人纠正自己,哈哈。

4

1 回答 1

0

在您的站点控制器功能主页中更改此行:

由此:

$data["results"] = $this->model_get->getData("home");

进入这个:

$data["results"] = $this->model_get->getData("home page");

我知道这一点是因为您从 Steven 的 youtube 教程中获得了这个。

于 2014-03-11T16:09:34.743 回答