将数据从视图传递到codeigniter中的控制器
问题描述:
以及我有一个问题。我建立了一个名称列表。这个名字是从一个mysql查询中获得的。控制器从模型中接收这些名称,并在传递给视图和视图之后将它们打印到列表中。当您单击名称时,另一个页面打开显示关于名称(电话,ecc ...)的每个细节。我的问题是我怎么能干这事意味着我知道如何创建一个列表,这是我该怎么办:将数据从视图传递到codeigniter中的控制器
<ul>
<?php foreach ($users as $item): ?>
<li><a href=""><?php echo $item->name . " " . $item->surname; ?></a></li>
<?php endforeach; ?>
</ul>
当我点击我要转到包含详细信息的页面的名称和姓的链接这名字和姓氏。我该怎么办?我必须将名字和姓氏从视图传递给控制器并执行查询?
答
我不知道你是如何构建你的控制器和视图,但你可以使用这样的结构,因为这对于用户来说,其中uid是唯一的用户ID:
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为例如“/ users/getuser/1”传递每个名称的唯一标识。如果您的控制器被称为“用户”,那么您将创建名为getuser的函数并使用$ this-> uri-> segment(3)从URL中检索ID。 YOu然后可以将其存储到您传递给模型的变量中以获取记录的详细信息,然后加载您的用户详细信息视图。
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 <?= "https://stackoverflow.com/users/getuser/" . $item->id; ?>
答
让你的链接是这样的:
<li>
<a href="/user/get_user_details/<?php echo $item->name; ?>">
<?php echo $item->name . " " . $item->surname; ?>
</a>
</li>
这将去控制用户,方法get_user_details并通过$用品 - >名作为参数的方法。使用这个(或你通过的物品的任何属性)来显示该物品的细节。
这有点含糊,但我认为你会发送在该href GET变量,然后控制器会读这些,做魔术。 – 2012-02-20 00:07:11
@AramKocharyan你是什么意思发送GET变量在该href?我能怎么做?可以举个例子吗? – 2012-02-20 00:21:44