您当前未登录    免费注册    会员登录   
查看:708   回复:1

教你如何在XiaoCMS前台搜索表单提交的内容

yuyoumin105
yuyoumin105
主要做三项工作,即可完成搜索表单提交的内容。

一、修改/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');
}


二、搜索提交的窗口

注意:
1、使用get方式提交
2、c=index,这里的c即控制器名
3、a=searchForm,这个名称其实可以自定义,但要跟index控制器里的Action相对应。
4、搜索关键词叫kw,不能错。
5、如果想支持多条件搜索,需要再修改searchFormAction

<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>


三、模板显示页面

需要一个独立的模板显示页面,页面的文件名要与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> 
{/xiao:if}


1楼2017-09-29 20:50:36 回复
380
yuyoumin105
请在360兼容 或者ie模式下  查看此帖!  我发现在360急速下  代码区域显示不完整!
2楼2017-09-29 20:51:37 回复
快速回复