Codeigniter:如何将输入值从一个函数传递到控制器内的另一个函数

时间:2019-07-20 12:27:13

标签: php codeigniter

我是Codeigniter的新手,我已经在这里看到过类似的问题。但对我而言,没有一个有效。 我的视图中有一个表单,并将该表单的输入值传递给控制器​​内部名为“ Insert”的方法。现在,我正在尝试将此值从“插入”方法“移动到另一个名为“ post_action”的方法。但是无法实现。

这是控制器:

public function insert() {
        $data['values'] = $this->Final_model->insert();
        $this->load->view('info/insert',$data);


        $val = $this->input->post('coursecode'); 

        echo $val;


    $this->post_action($val); //passing data into another function

    }


public function post_action($val='')
    {   
        $temp1 = $this->input->post('textbox');
    if($temp1== "")
    {
        $message = "You can't send empty text";

    }
    else
    {
        print_r($val);

        if($val == NULL) echo 'Value is null bro...';


        $grades = $_POST['grade'];
        $msg = $_POST['my'];

        $message = $_POST['textbox'];
        $this->Final_model->build_post($msg,$val,$message,$grades);
        echo "Value added successfully";
        }

    }

这是我的“索引”视图:

<?php echo form_open('Home_Controller/insert'); ?>
 <div class="form-group">
<label>Course Code</label>
<input type="text" class="form-control" name = "coursecode"
placeholder="Add Course Code">
<br> <br>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>

这是我的“插入”视图:

  <?php echo form_open('Home_controller/post_action'); ?>
<td> <input type="text" name="textbox" id = "textbox"> </td>
<td><input type="text" name="grade" id = "grade1"></td>
<input type="hidden" name = "my" value = "<?php  echo $value['id']; ?>" 
id 
= "my"/>
<td><input type="submit" value="Submit"></td>
</form>

现在,它在视图传递的insert方法中回显正确的值。但是在post_action方法中,它回显“ value is null bro”,并且0传递给数据库表(这是在模型中完成的插入操作)。

我的问题是,为什么不能在此post_action方法中从视图传递输入值。

P.S:我已经在这个问题上花了大约2天的时间,但是什么都没有。所以,如果这个问题太天真,请原谅我。预先感谢。

1 个答案:

答案 0 :(得分:0)

请尝试使用该控制器:

<?php


public function insert()
{

    $data['values'] = $this->Final_model->insert();
    $this->load->view('info/insert',$data);

    $val['coursecode'] = $this->input->post('coursecode');
    echo $val['coursecode']; //echoing value from post

    if(!empty($val)){
        $this->post_action($val); //passing val into another function
    } else {
        echo "Didn't get value from post";
    }

}

public function post_action($val = '')
{
    if(is_array($val) && count($val) > 0)
    {
        $grades = $_POST['grade'];
        $msg = $_POST['my'];

        $message = $_POST['textbox'];
        $this->Final_model->build_post($msg,$val,$message,$grades);
        echo "Value added successfully";
    } 
    else 
    {
       echo "No result found";
    }
}


?>