重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Yii框架结合sphinxAjax如何实现搜索分页功能-创新互联

这篇文章主要介绍Yii框架结合sphinx Ajax如何实现搜索分页功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

成都创新互联自2013年起,先为陆丰等服务建站,陆丰等地企业,进行企业商务咨询服务。为陆丰企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

具体如下:

效果图:

Yii框架结合sphinx Ajax如何实现搜索分页功能

控制器:

request->get('sou');
    $p1=Yii::$app->request->get('p1');
    $p2=Yii::$app->request->get('p2');
    //echo $sou.$p1.$p2;die;
    //sphinx搜索
    $cl = new SphinxClient();
    $cl -> SetServer('127.0.0.1',9312);
    $cl -> SetConnectTimeout(3);
    $cl -> SetArrayResult(true);
    if($sou)
    {
      //只搜索条件
      $cl -> SetMatchMode(SPH_MATCH_ANY);
    }
    else
    {
      //全局扫描
     $cl -> SetMatchMode(SPH_MATCH_FULLSCAN);
    }
    //设置价格(注意:创建索引时,价格属性定义为int)
    if($p1&&$p2)
    {
    $cl->SetFilterRange('price',$p1,$p2);
    }
    //搜索查询关键字
    $res = $cl->Query($sou,"mysql_goods");
    //ajax分页
    $model=new Goods();
    foreach ($res['matches'] as $key => $val)
    {
     $ids[] = $val['id'];
    }
    //查询条件数据
    $query = $model->find()->where(['id'=>$ids]);
    $countQuery = clone $query;
    $pages = new Pagination(['totalCount' => $countQuery->count(),'defaultPageSize'=>3]);
    //分页
    $models = $query->offset($pages->offset)
    ->limit($pages->limit)
    ->all();
    //关键字变红
    foreach($models as $k=>$v)
    {
      $models[$k]['goods_name']=str_replace("$sou","$sou",$v['goods_name']);//将关键字替换成红色字体
    }
    //显示列表,分配数据
    return $this->render('index', [
       'res' => $models,
       'pages' => $pages,
       'sou'=>$sou,
       'p1'=>$p1,
       'p2'=>$p2
    ]);
   }
}
?>

视图层:

 'index.php?r=sou/index',
  'method' => 'get'
]) ?>
  商品名称:   ">   价格区间:   ">---">                  ID       商品名称       商品价格          $v){?>                                        $pages]) ?>
beginBlock('test2') ?>   $(document).on('click', '.pagination a', function(e)   {     //阻止page显示,看地址     e.preventDefault();     var href = $(this).attr('href');     $.post(href,function(msg){       $('#list').html(msg);     })   }); endBlock(); $this->registerJs($this->blocks['test2'] , yii\web\View::POS_END) ?>

以上是“Yii框架结合sphinx Ajax如何实现搜索分页功能”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


新闻标题:Yii框架结合sphinxAjax如何实现搜索分页功能-创新互联
标题URL:http://cqcxhl.com/article/cdijce.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP