如何使用codeIgniter框架MVC回显我通过post传递的变量

时间:2016-05-04 15:26:40

标签: php codeigniter model-view-controller

我正在尝试将数据从表单保存到数据库中,但我不能这样做......不知道为什么。我想打印变量,看看变量是否通过post传递。如何回显通过post传递的变量和where。我是MVC模型的新手 所以在我看来,我(在表格内):

<td>
    <input size="15" type="text" name="val1" id="val1" class="text" value="<?= isset($user) ? set_value('val1',$this->form_validation->val1) : set_value('val1'); ?>"/>
<?= form_error('val1');?>
</td>
<td>
    <input size="15" type="text" name="val2" id="val2" class="text" value="<?= isset($user) ? set_value('val2',$this->form_validation->val2) : set_value('val2'); ?>"/>
<?= form_error('val2');?>
</td>
<td>
    <input size="15" type="text" name="val3" id="val3" class="text" value="<?= isset($user) ? set_value('val3',$this->form_validation->val3) : set_value('val3'); ?>"/>
<?= form_error('val3');?>
</td>

然后在我的控制器中:

if($this->input->post('val3')!=''){
        $data = array(
        'id_val' => $id,
        'pass' => $this->input->post('oldVal'),
        'newPass'=> $this->input->post('newVal'),
        'user' => $this -> session ->userdata('username')
    );
    $id_m = $this->val3_model->save($data);

}

if($this->input->post('val1')!=''){
    $data = array(
        'id_val' => $id,
        'pass' => $this->input->post('oldVal'),
        'newPass'=> $this->input->post('newVal'),
        'user' => $this -> session ->userdata('username')
    );
    $id_m = $this->val1_model->save($data);
}

if($this->input->post('val2')!=''){
    $data = array(
        'id_val' => $id,
        'pass' => $this->input->post('oldVal'),
        'newPass'=> $this->input->post('newVal'),
        'user' => $this -> session ->userdata('username')
    );
    $id_m = $this->val2_model->save($data);
}

模型:

class Val1_model_model extends CI_Model{
    // table name
    private $table= 'val1';

    function _construc(){
       parent::Model();
    }
   *   
   *  
   *  
    function save($data){
        $this->db->insert($this->table, $data);
        return $this->db->insert_id();
    }
}

2 个答案:

答案 0 :(得分:2)

在控制器方法的最开始,您可以使用var_dump();

var_dump($this->input->post(NULL, TRUE));

Input :: post()方法返回$ _POST数组中的数据。假设您的表单使用该方法并将其发布到该控制器/方法,则应该打印$ _POST数组的内容。第一个参数允许指定特定的索引(字段名称),但是如果传递NULL(或者没有,例如。$this->input->post()),您将获得整个值的数组。第二个参数通过XSS过滤器运行它,这是可取的。

答案 1 :(得分:2)

@AVProgrammer为您提供了一个很好的方式来转储整个帖子。

如果这不起作用,你可能会做一些错误的事情。首先,如果表单上有action属性,请验证是否正确。 Here is a good article to explain more

除此之外,为了回答您的具体问题,以下是在视图中输出变量的示例(在帖子之后):

<?php if ($this->input->post('val3')) { echo $this->input->post('val3'); } ?>

希望这有帮助。