XiaoCMS在前台搜索表单提交的内容
主要做三项工作,即可完成搜索表单提交的内容。
一、修改/core/controller/index.php页面,添加一个接收表单搜索的Action。
注意如下地方:1、表单的名称,即表单的表的名称;2、最后一行要展示的模板页面。
/**
* 自定义表单内容搜索
*/
public function searchFormAction() {
$kw = urldecode($this->get('kw'));
if($kw == '')$this->show_message('请输入要搜索的关键字');
$catid = $catid ? $catid : (int)$this->get('catid');
$modelid = $modelid ? $modelid : (int)$this->get('modelid');
$page = (int)$this->get('page') ? (int)$this->get('page') : 1;
$pagesize = 10;
$urlparam = array();
$urlparam['kw'] = $kw;
$url = url('index/search', $urlparam);
if ($catid) $this->db->where('catid=?', $catid);
if ($modelid) $this->db->where('modelid=?', $modelid);
$data = $this->db->setTableName('form_geren')->pageLimit($page, $pagesize)->where("`zsleixing` LIKE ?",'%'.$kw.'%')->getAll(null,null,null,array('time DESC'));
foreach ($data as $key => $t) {
$data[$key]['url'] = $this->view->get_show_url($t);
}
if ($catid) $this->db->where('catid=?', $catid);
if ($modelid) $this->db->where('modelid=?', $modelid);
$total = $this->db->setTableName('form_geren')->where("`zsleixing` LIKE ?",'%'.$kw.'%')->count();
$pagelist = xiaocms::load_class('pager');
$pagelist = $pagelist->total($total)->url($url. '&page=[page]')->hide(true)->num($pagesize)->page($page)->output();
$this->view->assign($this->listSeo($cat, $page, $kw));
$this->view->assign(array(
'kw' => $kw,
'pagelist' => $pagelist,
'data' => $data,
'num' => $total,
'site_title' => '搜索 ' . $kw . ' - ' . $this->site_config['site_name'],
'site_keywords' => $kw,
'site_description' => '搜索 ' . $kw,
));
$this->view->display('search_geren.html');
}
二、搜索提交的窗口
<form action="" method="get" id="searchForm">
<input type="hidden" value="index" name="c" />
<input type="hidden" value="searchForm" name="a" />
<div class="searchForm">
<a href="#" onclick="$('#searchForm').submit();">搜索</a>
<i class="fa fa-search"></i>
<input type="text" name="kw" placeholder="请输入关键词" />
</div>
</form>
注意:
1、使用get方式提交
2、c=index,这里的c即控制器名
3、a=searchForm,这个名称其实可以自定义,但要跟index控制器里的Action相对应。
4、搜索关键词叫kw,不能错。
5、如果想支持多条件搜索,需要再修改searchFormAction
三、模板显示页面
需要一个独立的模板显示页面,页面的文件名要与searchFormAction里面定义的一致。
<span>您当前位置:<a href="{xiao:$site_url}">首页</a> >> "{xiao:$kw}" 搜索结果</span>
{xiao:if empty($num)}
<h3>抱歉,没有找到“{xiao:$kw}”相关的内容。</h3>
{xiao:else}
<table width="100%">
<tr>
<th>姓名</th>
<th>证书类型</th>
<th>挂靠方式</th>
<th>期望价格</th>
<th>签发日期</th>
<th>是否参保</th>
</tr>
{xiao:loop $data $t}
<tr>
<td>{xiao:$t['xingming']}</td>
<td>{xiao:$t['zsleixing']}</td>
<td>{xiao:$t['guakaofangshi']}</td>
<td>{xiao:$t['jiage']}</td>
<td>{xiao:$t['qianfariqi']}</td>
<td>{xiao:$t['canbao']}</td>
</tr>
{/xiao:loop}
</table>
<!--这里还可以进行分页-->
<div >{xiao:$pagelist}</div>