передача данных из представления на контроллер в codeigniter - PullRequest
0 голосов
/ 20 февраля 2012

ну у меня проблема.Я создаю список name.this получено из запроса MySQL. Контроллер получает эти имена из модели и после передачи в представление и представление распечатывает их в списке. Когда вы щелкаете по имени, открывается другая страница, показывающаякаждая информация об имени (телефон, ecc ...).Моя проблема в том, как я могу это сделать. Я имею в виду, что я знаю, как создать список, вот как я делаю:

<ul>

        <?php foreach ($users as $item): ?>

            <li><a href=""><?php echo $item->name . " " . $item->surname; ?></a></li>

        <?php endforeach; ?>

</ul>

Когда я нажимаю на ссылку имени и фамилии, я должен перейти на страницусодержит сведения об этом имени и фамилии. Как я могу это сделать?Я должен передать имя и фамилию контроллеру из представления и выполнить запрос?

Ответы [ 3 ]

2 голосов
/ 20 февраля 2012

Я не уверен, как вы структурировали свой контроллер и представления, но вы могли бы использовать такую ​​структуру для пользователей, где uid - это уникальный идентификатор пользователя:

href="users.php?uid=123"

users.php будет затем использовать переменную GET uid, чтобы загрузить запрос информации о пользователе из вашей модели и затем передать эту информацию вашему представлению. Чтение в переменной GET будет выглядеть так:

if ( isset($_GET['uid']) ) {
    $uid = $_GET['uid'];
    // Load info from model and present in view
} else {
    // Handle invalid or unspecified users, perhaps show all available users
}

После того, как вы создали базовую функциональность, вы можете использовать правила Apache mod_rewrite, такие как Sureround, чтобы сделать URL красивым.

2 голосов
/ 22 февраля 2012

сделайте ваши ссылки такими:

 <li>
   <a href="/user/get_user_details/<?php echo $item->name; ?>">
     <?php echo $item->name . " " . $item->surname; ?>
   </a>
 </li>

это перейдет к пользователю контроллера, методу get_user_details и передаст $ item-> name в качестве параметра методу. используйте это (или любое другое свойство элемента, который вы передаете), чтобы показать детали этого элемента.

1 голос
/ 20 февраля 2012

Вы должны передать уникальный идентификатор для каждого имени через URL, например, "/ users / getuser / 1". Если ваш контроллер называется «пользователи», вы должны создать функцию getuser и использовать $ this-> uri- >gment (3) для получения идентификатора из URL. Затем вы можете сохранить это в переменной, которую вы передадите в свою модель, чтобы получить подробности для записи, а затем загрузить детальное представление пользователя.

function getuser()
{
  $userID = $this->uri->segment(3);

  // Then just load your model pass your $userID and load your view
}

In your href you would just output <?= "/users/getuser/" . $item->id; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...