как передать идентификатор в контроллере из действия формы с помощью codeigniter

эй, ребята, я новичок в 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 от формы к методу контроллера, как я могу это сделать. , PLS помочь мне. ,

лучше передать значение в скрытом поле

 <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 } } 

Вам нужно использовать PHP и echo $ 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> 

Здесь ваш метод формы – это сообщение, так что вы получите идентификатор через метод get, вы можете сделать

 <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'); 

он будет лучшим вариантом для вас во всех случаях, если вы пытаетесь отправить один или несколько данных контроллеру из формы.

 $route['ctl_dbcont/input_investment/(:num)'] = "ctl_dbcont/input_investment/$1"; 

Просто добавьте эту строку в свой config / route :).

Это будет работать только с числами, если у вас есть идентификаторы другого типа, которые вы можете использовать (: any)

Другой вариант – поймать идентификатор напрямую, используя:

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

Где сегмент (3) является третьим элементом после вашего домена:

 http://domain/segment1/segment2/segment3