我是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
答案 0 :(得分:2)
实际问题或错误的描述充其量是模糊的,但我猜这就是问题所在:
public $data1['value'] = "What to insert";
这不是有效的财产声明。如果要将属性“$data1
”声明为数组,则必须这样做:
public $data1 = array('value' => "What to insert");
答案 1 :(得分:1)
__构造函数在每次运行脚本时调用,因此您可以在此函数中添加常量值以供查看或其他用途。
<?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);
}
}
?>