PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > 工作总结

PHP应用:Yii框架结合sphinx,Ajax实现搜索分页功能示例

管理员 2025-02-21
工作总结
13

《PHP应用:Yii框架结合sphinx,Ajax实现搜索分页功能示例》要点:
本文介绍了PHP应用:Yii框架结合sphinx,Ajax实现搜索分页功能示例,希望对您有用。如果有疑问,可以联系我们。
 

相关主题:YII框架

PHP实战本文实例讲述了Yii框架结合sphinx,Ajax实现搜索分页功能的方法.分享给大家供大家参考,具体如下:

PHP实战效果图:

PHP实战PHP应用:Yii框架结合sphinx,Ajax实现搜索分页功能示例

PHP实战控制器:

PHP实战<?phpnamespace backendcontrollers;use Yii;use yiiwebController;use yiidataPagination;use SphinxClient;use yiidbQuery;use yiiwidgetsLinkPager;use backendmodelsGoods;class SouController extends Controller{  //显示搜索页面  public function actionIndex()  {    //接受搜索值    $sou=Yii::$app->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","<font color='red'>$sou</font>",$v['goods_name']);//将关键字替换成红色字体    }    //显示列表,分配数据    return $this->render('index', [       'res' => $models,       'pages' => $pages,       'sou'=>$sou,       'p1'=>$p1,       'p2'=>$p2    ]);   }}?>

PHP实战视图层:

PHP实战<?phpuse yiihelpersHtml;use yiiwidgetsActiveForm;use yiiwidgetsLinkPager;$form = ActiveForm::begin([  'action' => 'index.php?r=sou/index',  'method' => 'get']) ?><center><div id="list">  商品名称:  <input type="text" name="sou" value="<?php echo $sou?>">  价格区间:  <input type="text" name="p1" value="<?php echo $p1?>">---<input type="text" name="p2" value="<?php echo $p2?>">  <input type="submit" value="搜索">  <table border="1" style="width:500px;">    <tr>      <th>ID</th>      <th>商品名称</th>      <th>商品价格</th>    </tr>    <?php foreach($res as $key=>$v){?>    <tr>      <td><?php echo $v['id'];?></td>      <td><?php echo $v['goods_name'];?></td>      <td><?php echo $v['price'];?></td>    </tr>    <?php }?> </table><!--分页--><?= LinkPager::widget(['pagination' => $pages]) ?></div></center><?php ActiveForm::end() ?><!--显示--><?php $this->beginBlock('test2') ?>  $(document).on('click', '.pagination a', function(e)  {    //阻止page显示,看地址    e.preventDefault();    var href = $(this).attr('href');    $.post(href,function(msg){      $('#list').html(msg);    })  });<?php $this->endBlock();$this->registerJs($this->blocks['test2'] , yiiwebView::POS_END)?>

PHP实战更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

PHP实战希望本文所述对大家基于Yii框架的PHP程序设计有所帮助.

转载请注明本页网址:
/jiaocheng/3009.html


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部