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>

03-15 15:59