0

我是 CodeIgniter 的新手。单击提交后,我尝试再次输出视图,但是该视图具有来自控制器的变量,但是当我尝试时,它不起作用。

<?php
    class Site extends CI_Controller{

        public $data1['value'] = "What to insert";

        public function index(){
            $this->load->view('home',$this->data1);
        }

    public function get_product(){
            $data = array(
                'product_name' => $this->input->post('prod_name')
            );
            $this->site_model->insert_product($data);
            $this->load->view('home',$this->data1);
        }

    }
?>

这是我的看法:

<div id="container">
<h1><?php echo $data1;?></h1>

    <?php echo form_open('site/get_product'); ?>

    <p>
        <label for="product">Product Name </label>
        <input type="text" id="product" name="prod_name" />
    </p>    

    <input type="submit" name="submit_but" value="submit">

<?php echo form_close(); ?>

</div>

get_product我需要再次调用视图,但我知道如果我要在函数中再次声明它会很麻烦。

错误:

Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\xampp\htdocs\code_igniter\application\controllers\site.php on line 9
4

2 回答 2

2

实际问题或错误的描述充其量是模糊的,但我猜这就是问题所在:

public $data1['value'] = "What to insert";

这不是一个有效的财产声明。如果要将属性“ $data1”声明为数组,则必须这样做:

public $data1 = array('value' => "What to insert");
于 2013-05-18T12:12:11.703 回答
1

每次运行脚本时都会调用 __construct 函数,因此您可以在此函数中添加常量值以供查看或其他用途。

<?php
class Site extends CI_Controller{
    public $data1 = array();

    public function __construct() {
        $this->data1['value'] = "bla bla";
    }

    public function index(){
        $this->load->view('home',$this->data1);
    }

    public function get_product(){
        $data = array(
        'product_name' => $this->input->post('prod_name')
        );
        $this->site_model->insert_product($data);
        $this->load->view('home',$this->data1);
    }
}
?>
于 2013-05-18T12:15:27.063 回答