织梦dedecms自定义搜索可以按照附加表字段进行搜索

因为需要在网上搜索了一下找到此修改方法:
首先 是新建模型:商标信息 模型;附加表为dede_shangbiao ,附加字段先添加了2个,sbID(商标ID)和chuangyi(创意说明)
然后 打开需要搜索的模板,我用的是通用的模板,head.htm 稍后有图说明,      
<form action="{dede:global.cfg_cmsurl /}/plus/advancedsearch.php" method="post">
               <input type="hidden" name="mid" value="100" /> //100是模型的ID号
               <input type="hidden" name="dopost" value="search" />
               <input name="keyword" type="text" class="search-keyword" id="search-keyword" />
                      {dede:php}
          $tl = new TypeLink(100);
              $typeOpti***** = $tl->GetOptionArray(0,0,100);
              echo "<select name='typeid' style='width:200'>\r\n";
              echo "<option value='0' selected>--不限栏目--</option>\r\n";
              echo $typeOpti*****;
              echo "</select>";
           {/dede:php}
                <select name="serachvalue" class="search-option">
                      <option value="q" selected='1'>商标名称</option>
                      <option value="sbid">商标ID</option>
                      <option value="chuangyi">创意说明</option>
                 </select>    
                <button type="submit" class="search-submit">Search Now</button>
            </form>
最后是修改plus/advancedsearch.php 文件
找到$q = stripslashes($q); 大概在43行左右在其上面添加   
     if($_POST["serachvalue"] == "q"){$q=$keyword;}
     elseif($_POST["serachvalue"] == "sbid"){$sbid=$keyword;}
    elseif($_POST["serachvalue"] == "chuangyi"){$chuangyi=$keyword;}
判断是根据神马搜索的,
找到if($q != ''){$where .= " and main.title like '%$q%' ";}修改为  
  if($q != ''){$where .= " and main.title like '%$q%' ";}
    elseif($sbid != ''){$where.=" and addon.sbID='$sbid'";}
    elseif($chuangyi != ''){$where .="and addon.chuangyi like '%$chuangyi%'";}
如果是搜索标题的话查询的是主表,如是搜索商标ID和创意说明的 则是搜索的附加表
就这样就完成了。哈哈,简单吧!
 
 
http://www.xunyangie.com/dedecms/wenzhang/xunyang210.html
posted @   雪莉06  阅读(2420)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示