0

嘿伙计们,我是codeigniter的新手,我有这样的表格

<form class="addinvestmentform" action="<?php echo base_url();?>index.php/ctl_dbcont/input_investment/$id" name="application" method="post" >
//some code
</form>

我有一个控制器方法

function input_investment($id)
{
$this->load->helper('form');
                $this->load->helper('html');
                $this->load->model('mod_user');
                $this->mod_user->insertinvestment($id);
}

我想从表单操作获取 $id 到控制器方法我该怎么做。. 请帮助我 。.

4

4 回答 4

2

最好在隐藏字段中传递值

<form class="addinvestmentform" action="<?php echo base_url();?>index.php/ctl_dbcont/input_investment" name="application" method="post" >
<input type="hidden" name="my_id" value="<?php echo $id; ?>"/>
</form>

在你的 ci 函数中

function input_investment() {
    $id = $this->input->post('my_id');
    $this->load->helper('form');
    $this->load->helper('html');
    $this->load->model('mod_user');
    $this->mod_user->insertinvestment($id);
}

或者如果你想要(测试)

// 示例视图

<?php $id = 1; ?>
<form action="<?php echo base_url('my_class/my_method/' . $id); ?>" method="post" >
  <input type="submit" />
</form>

// 控制器

class My_class extends CI_Controller {

  public function index() {
    $this->load->view('my_class');
  }

  public function my_method($id) {
    echo $id; // outputs 1
  }

}
于 2013-04-01T05:04:23.387 回答
1

如果您想要该值,您需要使用 PHP 并在元素中回显 $id,现在您将“$id”发送到 input_investment($id)。

<form class="addinvestmentform" action="<?php echo base_url();?>index.php/ctl_dbcont/input_investment/<?php echo $id; ?>" name="application" method="post" >
//some code
</form>
于 2013-04-01T05:04:55.163 回答
0

在这里,您的表单方法是 post,因此您可以通过 get 方法继续获取 id,您可以这样做

<form class="addinvestmentform" action="<?php echo base_url();?>index.php/ctl_dbcont/input_investment" name="application" method="post" > 
    <input type="hidden" name='id' value="<?php echo $id;?>">
</form>

在您的控制器中,您可以尝试使用类似的帖子

$id = $_POST['id'];

或者

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

如果您尝试将单个或多个数据从表单发送到控制器,那么它在所有情况下都是更好的选择......

于 2013-04-01T05:05:18.057 回答
0
$route['ctl_dbcont/input_investment/(:num)'] = "ctl_dbcont/input_investment/$1";

只需在您的配置/路线中添加这一行 :) 。

这仅适用于数字,如果您有其他类型的 ID 可以使用 (:any)

其他选择是直接使用以下方法捕获 id:

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

其中 segment(3) 是您的 domain 之后的第三个元素:

http://domain/segment1/segment2/segment3
于 2013-04-01T05:09:15.920 回答