Php 如何使用Codeigniter在搜索结果中创建URL链接?
我已经在Codeigniter中创建了一个搜索函数,它工作正常。搜索功能精确显示我想要的内容,但我希望结果链接到另一个页面。我是Codeigniter的新手。谁能帮帮我吗 这是我的模型Php 如何使用Codeigniter在搜索结果中创建URL链接?,php,mysql,codeigniter,Php,Mysql,Codeigniter,我已经在Codeigniter中创建了一个搜索函数,它工作正常。搜索功能精确显示我想要的内容,但我希望结果链接到另一个页面。我是Codeigniter的新手。谁能帮帮我吗 这是我的模型 public function search($searchterm) { $sql = "SELECT title as title, author as author FROM `edubooks` WHERE title LIKE '$searchterm' OR author
public function search($searchterm)
{
$sql = "SELECT title as title, author as author
FROM `edubooks`
WHERE title LIKE '$searchterm' OR author LIKE '$searchterm'";
$q = $this->db->query($sql);
if($q->num_rows() > 0)
{
foreach($q->result() as $row)
{
$data[] = $row;
}
return $data;
}
else
{
return 0;
}
}
/******************Handler for search******************/
public function searchterm_handler($searchterm)
{
if($searchterm)
{
$this->session->set_userdata('searchterm', $searchterm);
return $searchterm;
}
elseif($this->session->userdata('searchterm'))
{
$searchterm = $this->session->userdata('searchterm');
return $searchterm;
}
else
{
$searchterm ="";
return $searchterm;
}
}
控制器
public function search()
{
$searchterm = $this->search_model->searchterm_handler($this->input->get_post('searchterm', TRUE));
$data['results'] = $this->search_model->search($searchterm);
$data['searchterm'] = $searchterm;
$this->load->view('search',$data);
}
我的看法呢
<h2>Library Search System</h2>
<div id="formborder">
<form action ="search" method="post" id="searchform" name="searchform">
<b> Name of book : </b><input type="text" name="searchterm" id="searchterm" value="<?=$searchterm?>" />
<input type="submit" value="search" id="submit" />
</form>
</div>
<div id="tablebody">
<table id="table" width="100%" = border>
<?php if($results == false):?>
<tr>
<td>No records found.</td>
</tr>
<?php else:?>
<tr>
<th>Title</th>
<th>Author</th>
</tr>
<?php foreach($results as $r):?>
<tr>
<td align="center"><a href="#"><?php echo ($r->title); ?></a></td>
<td align="center"><a href="#"><?php echo ($r->author); ?></a></td>
</tr>
<?php endforeach;?>
<?php endif;?>
</table>
</div>
<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds</p>
图书馆检索系统
书名:如果您希望每个结果都有一个链接将您重定向到另一个pge,那么您必须将该新页面的URL放置在锚定标记的href
中,就像任何链接一样
HTML链接。我意识到你有一个表,我要做的是创建另一个带有“了解更多”链接的列
因此,在您的情况下,请更改以下内容:
<?php foreach($results as $r):?>
<tr>
<td align="center"><a href="#"><?php echo ($r->title); ?></a></td>
<td align="center"><a href="#"><?php echo ($r->author); ?></a></td>
</tr>
<?php endforeach;?>
为此:
<?php foreach($results as $r):?>
<tr>
<td align="center"><?= $r->title; ?></td>
<td align="center"><= $r->author; ?></td>
<td align="center"><a href="<?= base_url()?>controller_name/controller_method/$r->id">Learn More</a></td>
</tr>
<?php endforeach;?>
作者;?>
锚现在看起来像这样:
<?= base_url()?>controller_name/controller_method/$r->id
<?= base_url()?>books/about/$r->id
^ ^ ^
| | |
| | parameter
| method
controller
controller\u name/controller\u method/$r->id
您希望将其更改为所选的方法名称,可能类似于以下内容:
<?= base_url()?>controller_name/controller_method/$r->id
<?= base_url()?>books/about/$r->id
^ ^ ^
| | |
| | parameter
| method
controller
books/about/$r->id
^ ^ ^
| | |
||参数
|方法
控制器
它将重定向到特定的控制器方法,并将书本的id作为参数传递。您现在的工作是构建该方法,这样您就可以按id检索特定的书籍并将其解析为视图。print\r($results)代码>在您的视图中,检查结果是什么??我是否应该替换打印($results);使用foreach?我只想检查print\r($results)的结果是什么代码>我的意思是数据库中的值是否出现在您的视图中。检查您的查询是否返回数据??我的查询返回数据如果我应用了您的代码,我的控制器或模型是否需要任何更改?当然,您必须在控制器中创建新方法。你明白这个概念吗?