csok 发表于 2012-5-18 15:42:26

自定义搜索解决方案

第一步:
在include/global.fun.php中加入两个函数

函数一:[*]function loseSpace($pcon){
[*] $pcon = preg_replace("/ /","",$pcon);
[*] $pcon = preg_replace("/ /","",$pcon);
[*] $pcon = preg_replace("/ /","",$pcon);
[*] $pcon = preg_replace("/\r\n/","",$pcon);
[*] $pcon = str_replace(chr(13),"",$pcon);
[*] $pcon = str_replace(chr(10),"",$pcon);
[*] $pcon = str_replace(chr(9),"",$pcon);
[*] return $pcon;
[*]}复制代码函数二:[*]function select_search($name,$tb,$fid){
[*]      global $db;
[*]      $title="所有";
[*]      $r = $db->get_one("SELECT option_value FROM {$db->pre}fields WHERE name='$name' and tb='$tb'");
[*]         $option_value=loseSpace($r["option_value"]);
[*]      $ps = split("\*", $option_value);
[*]      #var_dump($matchs);
[*]      foreach ($ps as $s){
[*]         //以*分割1|可用*=> 1, 可用
[*]         if(!$s){
[*]      continue;
[*]         }
[*]         list($num,$word) = split("\|", $s);
[*]         $result[$num] = $word;
[*]      }         
[*]      foreach($result as $n => $v)
[*]      {
[*]      if ($n==$fid){
[*]         $title .=" ".$v."";
[*]      }
[*]      else{
[*]         $title .=" ".$v."";
[*]      }
[*]      }
[*]      $title .="";
[*]      return $title;
[*]}复制代码第一个函数的意思是过滤空格回车
第二个函数是根据 name(自定义字段) tb(所属模型) $fid(当前所选ID)生成下拉列表。

csok 发表于 2012-5-18 15:46:29


第二步:
在module/sell/search.inc.php中
的$day = isset($day) ? intval($day) : 0;下插入[*]$chengse = isset($chengse)?intval($chengse):0;
[*]复制代码在if($vip) $condition .= " AND vip>0";下加入[*]if($chengse) $condition .= " AND chengse=$chengse";
[*]复制代码然后再模板文件中
新旧程度:{select_search(chengse,sell,$chengse)}

zhousheep 发表于 2012-5-18 16:12:28


本帖最后由 rayyang 于 2013-2-11 12:50 编辑

有点懂了

zhousheep100 发表于 2012-5-18 16:17:28


我喜欢这个 谢谢楼主

jiang 发表于 2012-5-20 23:18:09


请问怎样应用在招商模块,需要改哪些代码

csok 发表于 2012-5-21 11:48:36


我的没做招商
应该差不多
把sell改成招商的表就好了

音乐历程网 发表于 2012-6-4 17:34:05


看了,感觉不错,谢谢您提供

七月 发表于 2012-6-18 14:51:58


不错,。。支持分享。。。

jifeng 发表于 2012-6-19 12:02:44


嗯,留作备用,谢谢了
页: [1]
查看完整版本: 自定义搜索解决方案