2012-04-21 2 views
1

Использование CodeIgniter Я пытаюсь создать ссылку, которую пользователь может щелкнуть в представлении, чтобы показать им подробную информацию о записи в моей базе данных.Ссылка на функцию контроллера с параметром из представления (CodeIgniter)

В ASP.NET MVC3 с C# Я хотел бы сделать это с @Html.ActionLink("Controller", "Action", new { id = item.Id})

Это мой сессии индекс диспетчеры функции()

public function index() 
{ 
     $data['sessions'] = $this->session_model->get_sessions(); 

     $this->load->view('_header'); 
     $this->load->view('session/index', $data); 
     $this->load->view('_footer'); 
} 

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

<table> 

<th>Session Name</th> 
<th>Description</th> 
<th>Host</th> 
<th></th> 

<?php foreach ($sessions as $session_item): ?> 
    <tr> 
     <td> <?php echo $session_item['sessionName'] ?> </td> 
     <td> <?php echo $session_item['sessionDesc'] ?> </td> 
     <td> <?php echo $session_item['adminName'] ?> </td> 
     <td> <a id="enterSession" href=<?php echo site_url("session/enter" + $session_item['id']) ?> >Enter</a></td> 

    </tr> 
<?php endforeach ?> 

Вводный ввод указывает мне на URL-адрес «http://192.168.1.36/index.php/1» (если идентификатор моего элемента равен 1), тогда как я ожидаю «http://192.168.1.36/index.php/ сессия/ввод/1"

Любые идеи о том, как я могу сделать это назвать ввести() функция также в контроллере сеанса (показано ниже)

public function enter($id) { 

     $this->load->view('_header'); 
     $this->load->view('session/enter'); 
     $this->load->view('_footer'); 
    } 
+0

Чтобы заставить URL указывать правильное место в href, попробуйте добавить конечную косую черту в '' session/enter "'. Или передайте массив вроде: '$ segment = array ('session', 'enter', $ session_item ['id']);' to 'site_url()'. – jleft

ответ

0

Там, кажется, опечатка в конкатенации в вашем PHP-коде. Возможно, он будет работать в использовании:

site_url("session/enter" . $session_item['id']) 

... а не + знака между двумя строками.

Что касается второго вопроса - он выглядит правильно как есть. Не удается ли вызвать функцию контроллера enter(), передав $id в качестве аргумента (при условии, что URL-адрес верен) ?.

+0

Блестяще, спасибо. Мне действительно нужно было изменить '+' на '.' Oh и добавить символ /. Так что теперь это работает :) ' >Enter' – Leanne182x

Смежные вопросы