codeigniter输入post方法返回空数组?

时间:2015-08-30 07:07:53

标签: php codeigniter

我正在尝试创建一个数据条目,控制器输入数据,显示并确认任何编辑然后使用方法将其提交给模型。

问题是在加载中function post_data() $this->input->post()的值中的模型返回一个空数组。

我输入的数据返回到get_data函数,然后在视图中的data.php中显示。 使用

data.php 在视图中将数据发布到post_data方法。

<form id='form'  action="<?php echo base_url("welcome/post_data"); ?>" method="POST" style="display:inline;">           
<input type="text" name="xyz" value="<?php echo $this->input->post("xyz") ?>" />

控制器是

protected $arr;
public function index(){
    $this->load->view('index/index');
    // $this->load->library('Controllerlist');
    // print_r($this->controllerlist->getControllers());
}
public function get_data(){
    echo "matoercod";
    $this->load->view("index/data");        
}
public function post_data(){
$this->load->model("form1","form",TRUE);
 print_r($this->input->post());
    $blue=$this->form->insert_data($this->arr);
    print_r($blue);
    if($blue){
     echo "Successfully added to database"; 
    }
}}

为什么print_r()方法返回一个空数组? post_data方法中的$ this-&gt; input-&gt; post()返回空数组。 如果我正确$ this-&gt; input-&gt; post()应该是Controller CI类中所有方法的全局。

2 个答案:

答案 0 :(得分:1)

input中的form标记没有name属性。

<form id='form'  action="<?php echo base_url("welcome/post_data"); ?>" method="POST" style="display:inline;">           
    <input name="xyz" type="text" value="<? php echo $this->input->post("xyz") ?>" />
</form>

修改 此外,input代码以错误的方式关闭(在value属性之前结束)。

<input type="text name="xyz" value="<? php echo $this->input->post("xyz") ?>" />

答案 1 :(得分:0)

如果您要在 get_data 中加载视图 data.php

public function get_data(){
    echo "matoercod";
    $this->load->view("index/data");        
}

然后你如何访问get_data网址?如果你只是在浏览器中输入它,那么你不是POSTing你正在获取,所以$ this-&gt; input-&gt; post 总是将是一个空数组。

我不完全清楚你是如何调用方法get_data的,但是你应该尝试改变它,以便它更仔细地构建你想要在它加载的任何视图中显示的数据

public function get_data(){
    $view_data = array(
        "xyz" => "here is some value" // you could get this value from anywhere
    );
    $this->load->view("index/data", $view_data);
}

然后在您的视图中 data.php ,您只想引用$ xyz而不是$ this-&gt; input-&gt; post(“xyz”):

<form id='form'  action="<?php echo base_url("welcome/post_data"); ?>" method="POST" style="display:inline;">           
<input type="text" name="xyz" value="<?php echo $xyz; ?>" />

注意视图加载功能的第二个参数。它是一个数组,数组中的每个关联键都将扩展为视图中的变量。