Php 使用get通过字符串进行CodeIgniter搜索
我一直在为我的代码点火器搜索表单编写视图,该表单需要使用get 我现在有这个 控制器Php 使用get通过字符串进行CodeIgniter搜索,php,codeigniter,search,Php,Codeigniter,Search,我一直在为我的代码点火器搜索表单编写视图,该表单需要使用get 我现在有这个 控制器 <?php class Search extends CI_Controller { function __construct(){ parent::__construct(); } public function index(){ $this->load->view('Search'); } public funct
<?php
class Search extends CI_Controller {
function __construct(){
parent::__construct();
}
public function index(){
$this->load->view('Search');
}
public function doSearch()
{
$this->load->model("Messages_model");
if ($this->input->get('search') !== FALSE) {
$data ['results'] = $this->Messages_model->searchMessages($this->input->get('search'));
} else {
$data['results'] = array();
}
$this->load->view("Search", $data);
}
看法
首先,转到application/config/config.php并找到$config['allow\u get\u array']
,确保它设置为TRUE
然后在控制器中,您会有如下内容:
public function search()
{
$this->load->model("Messages_model");
if ($this->input->get('search') !== FALSE) {
$data ['results'] = $this->Messages_model->searchMessages($this->input->get('search'));
} else {
$data['results'] = array();
}
$this->load->view("Search", $data);
}
请注意,这里没有对字符串进行任何验证,因此您需要添加自己的验证
希望这有帮助
编辑
查看文件:
<!DOCTYPE html>
<html>
<style>
</style>
<head>
<title></title>
</head>
<body>
<form action="<?php echo site_url('search/doSearch'); ?>" method = "get">
<input type="text" name="keyword" value="<?php echo isset($search_value) ? $search_value : ''?>"/>
<input type="submit" value="Search" />
</form>
<?php
if ($search_passed && !empty($results)) {
foreach ($results as $result) {
//Code for displaying results
}
} elseif ($search_passed && empty($results)) {
echo 'No results found!';
}
?>
</div>
</body>
</html>
控制器方法:
公共功能数据搜索()
{
$this->load->model(“Messages_model”)
if($this->input->get('keyword')!==FALSE){
$data['results']=$this->Messages\u model->searchMessages($this->input->get('keyword');
//取消注释下面的行以进行测试
//回显“;打印($data['results']);模具(“”);
$data['search_passed']=TRUE;
$data['search_value']=$this->input->get('keyword');
}否则{
$data['search_passed']=FALSE;
$data['results']=array();
}
$this->load->view(“搜索”,$data);
}
提示:阅读有关URI段的信息您是真的在url中有一个查询标记(即?search=bob
),还是希望搜索词位于正斜杠之后,例如example.com/seach/bob
?嗯,我真正需要的是能够在搜索表单中键入一个单词并通过getOk提交,最后,您使用的是codeigniter 2.*还是codeigniter 3.*非常感谢,但是您将如何编写此视图呢?这是我的主要奋斗目标。。我真的不知道如何使用这个功能你知道如何制作表单吗。。我现在有这个<代码>
将把表单数据发送到站点的索引页。将site\u url(“”)
更改为site\u url('search/view')
,因为您希望表单提交给处理搜索的控制器/方法。再次感谢,但我仍然无法使其显示搜索结果。。我试着给每个人写信,但还是没有成功
public function search()
{
$this->load->model("Messages_model");
if ($this->input->get('search') !== FALSE) {
$data ['results'] = $this->Messages_model->searchMessages($this->input->get('search'));
} else {
$data['results'] = array();
}
$this->load->view("Search", $data);
}
<!DOCTYPE html>
<html>
<style>
</style>
<head>
<title></title>
</head>
<body>
<form action="<?php echo site_url('search/doSearch'); ?>" method = "get">
<input type="text" name="keyword" value="<?php echo isset($search_value) ? $search_value : ''?>"/>
<input type="submit" value="Search" />
</form>
<?php
if ($search_passed && !empty($results)) {
foreach ($results as $result) {
//Code for displaying results
}
} elseif ($search_passed && empty($results)) {
echo 'No results found!';
}
?>
</div>
</body>
</html>
if ($this->input->get('keyword') !== FALSE) {
$data ['results'] = $this->Messages_model->searchMessages($this->input->get('keyword'));
//Uncomment the line below to test
// echo '<pre>'; print_r($data['results']);die('</pre>');
$data['search_passed'] = TRUE;
$data['search_value'] = $this->input->get('keyword');
} else {
$data['search_passed'] = FALSE;
$data['results'] = array();
}
$this->load->view("Search", $data);
}