如何将值从视图页面传递到控制器

时间:2018-12-10 11:40:54

标签: php codeigniter

我正在通过ahref标记调用控制器功能,我想将当前记录no传递给控制器​​以更新记录当前值存储在$ currentID中,并且我将此值传递给输入类型..但是我没有从视图页面获取值。.我尝试了var_dump($ id)..它显示为null 控制器代码进行更新:

    public function update($id='')
{

      $session_data = $this->session->userdata('logged_in');
        $data['username'] = $session_data['username'];

        $id=$this->input->post('update');
        echo "<pre>";var_dump($id);
            $dc=$this->input->post('dc');
            if($dc=='c'){
            $amount=$this->input->post('credit1');
                        } 
            else if ($dc=='d') {
            $amount=$this->input->post('debit');
                                }

$data=array(
      'date' =>$this->input->post('TDate'),
      'code' =>$this->input->post('TName'),
      'project' =>$this->input->post('TName1'),
      'part' =>$this->input->post('part1'),
      'part1' =>$this->input->post('part2'),
      'dc'=>$this->input->post('dc'),
      'amount'=>$amount,
   );
$this->db->where('recno', $id);
$this->db->update('daybook', $data);
$this->session->set_flashdata('Add1', 'Updated Successfully'); 
redirect('BookKeeping/daybook','refresh');
}

通话更新

<a href="<?=site_url('BookKeeping/update/'.$currentID)?>" class="btn btn-info btn-"><i class="icon-new position-left">
                        <input type="hidden" name="update" id="id" value="<?php echo $currentID?>">
                    </i>Update</a>

帮我将当前值传递给控制器​​。谢谢!

3 个答案:

答案 0 :(得分:2)

您正在通过url发送值  改变这个

$id=$this->input->post('update');

收件人

$id=$this->uri->segment('3');

答案 1 :(得分:1)

删除输入字段。您不能使用

传递任何输入数据
<a href="<?=site_url('BookKeeping/update/'.$currentID)?>" class="btn btn-info btn-"><i class="icon-new position-left"></i>Update</a>

尝试

public function update($id=''){

$session_data = $this->session->userdata('logged_in');
$data['username'] = $session_data['username'];

$id=$id;

echo "<pre>";var_dump($id);
$dc=$this->input->post('dc');
if($dc=='c'){
  $amount=$this->input->post('credit1');
} 
else if ($dc=='d') {
  $amount=$this->input->post('debit');
}

$data=array(
  'date' =>$this->input->post('TDate'),
  'code' =>$this->input->post('TName'),
  'project' =>$this->input->post('TName1'),
  'part' =>$this->input->post('part1'),
  'part1' =>$this->input->post('part2'),
  'dc'=>$this->input->post('dc'),
  'amount'=>$amount,
);

$this->db->where('recno', $id);
$this->db->update('daybook', $data);
$this->session->set_flashdata('Add1', 'Updated Successfully'); 
redirect('BookKeeping/daybook','refresh');

}

答案 2 :(得分:0)

在您的代码中

正如我所看到的有关您的控制器代码的问题一样,您尚未在变量$currentID中传递任何可能未定义的值,因此请首先尝试var_dump $currentID变量并检查其值。

进行测试

为功能起见,请尝试分配静态ID。您的静态值将作为参数传递给方法。一旦确定静态值有效,就可以继续找出$currentID变量中的问题所在。

$data['currentID'] = $someValueFromDB;
$this->load->view('some_view.php',$data);

这样,您的值将被传递到视图,确保值正确地传递或在视图上生成。 您正在控制器上以正确的方式传递数据,没问题。