destoon设置自定义搜索的方法

分类栏目:destoon实战

99

在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 $DT; $titles='<select><option value="">所有</option>'; $r = DB::query("SELECT option_value FROM {$db->pre}fields WHERe 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){ $titles .='<option value=".$n." selected="">".$v."</option>'; } else{ $titles .='<option value=".$n.">".$v."</option>'; } } $titles .='</select>'; return $titles; }

第一个函数的意思是过滤空格回车

第二个函数是根据 name(自定义字段) tb(所属模型) $fid(当前所选ID)生成下拉列表。

第二步:

在module/sell/search.inc.php中的$day = isset($day) ? intval($day) : 0;下插入


$xin = isset($xin)?intval($xin):0;

在if($vip) $condition .= " AND vip>0";下加入


if($xin) $condition .= " AND xin=$xin";

然后在模板文件中使用:


{select_search(xin,sell,$xin)}