杰克工作室 发表于 2023-3-1 10:54

dolphinphp海豚后台管理系统搜索功能加=或者like

<h3>dolphinphp海豚后台管理系统搜索功能加=或者like</h3>

<p>每个业务功能不同,对搜索要求也不同,有些场景需要like,有些场景需要=。于是就有了此文。</p>

<p>&nbsp;</p>

<p>下面介绍如何添加设置搜索功能:</p>

<p>1、创建table时加上参数:</p>

<pre>
ZBuilder::make(&#39;table&#39;)-&gt;setSearch($srhuser,&nbsp;&#39;&#39;,&nbsp;&#39;&#39;,&nbsp;&#39;&#39;,&nbsp;&#39;=&#39;)</pre>

<p>2、修改common/builder/table/Builder.php,找到如下代码:</p>

<pre>
$this-&gt;_vars[&#39;search&#39;]&nbsp;=&nbsp;[
&nbsp;&nbsp;&nbsp;&nbsp;&#39;fields&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$_temp_fields,
&nbsp;&nbsp;&nbsp;&nbsp;&#39;field_all&#39;&nbsp;&nbsp;=&gt;&nbsp;implode(&#39;|&#39;,&nbsp;array_keys($_temp_fields)),
&nbsp;&nbsp;&nbsp;&nbsp;&#39;placeholder&#39;&nbsp;=&gt;&nbsp;$this-&gt;_search[&#39;placeholder&#39;]&nbsp;!=&nbsp;&#39;&#39;&nbsp;?&nbsp;$this-&gt;_search[&#39;placeholder&#39;]&nbsp;:&nbsp;&#39;请输入&#39;.&nbsp;implode(&#39;/&#39;,&nbsp;$_temp_fields),
&nbsp;&nbsp;&nbsp;&nbsp;&#39;url&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$this-&gt;_search[&#39;url&#39;]&nbsp;==&nbsp;&#39;&#39;&nbsp;?&nbsp;$this-&gt;request-&gt;baseUrl(true)&nbsp;:&nbsp;$this-&gt;_search[&#39;url&#39;],
&nbsp;&nbsp;&nbsp;&nbsp;&#39;searchtype&#39;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$this-&gt;_search[&#39;searchtype&#39;],//新增此行代码
];</pre>

<p>&nbsp;</p>

<p>3、找到common/builder/table/layout.html如下代码:</p>

<pre>
{notempty&nbsp;name=&quot;search&quot;}
&lt;div&nbsp;class=&quot;pull-right&nbsp;search-bar&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=&quot;hidden&quot;&nbsp;name=&quot;search_field&quot;&nbsp;id=&quot;search-field&quot;&nbsp;value=&quot;{php}echo&nbsp;input(&#39;param.search_field&#39;,&nbsp;&#39;&#39;)&nbsp;==&nbsp;&#39;&#39;&nbsp;?&nbsp;$search[&#39;field_all&#39;]&nbsp;:&nbsp;input(&#39;param.search_field&#39;);{/php}&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=&quot;hidden&quot;&nbsp;name=&quot;search-type&quot;&nbsp;id=&quot;search-type&quot;&nbsp;value=&quot;{$search[&#39;searchtype&#39;]}&quot;&gt;//新增此行</pre>

<p>&nbsp;</p>

<p>4、找到public/static/admin/js/builder/table.js</p>

<pre>
$(&#39;#search-input&#39;).on(&#39;keyup&#39;,&nbsp;function&nbsp;(e)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(e.keyCode&nbsp;===&nbsp;13)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$url&nbsp;=&nbsp;$(this).data(&#39;url&#39;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$filed&nbsp;=&nbsp;$(&#39;#search-field&#39;).val();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$keyword&nbsp;=&nbsp;$(this).val();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$searchType&nbsp;=&nbsp;$(&#39;#search-type&#39;).val();//新增此行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;_curr_params&nbsp;=&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;search_field&#39;:&nbsp;$filed&nbsp;||&nbsp;&#39;&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;keyword&#39;:&nbsp;$keyword&nbsp;||&nbsp;&#39;&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//注意最后一个,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;searchtype&#39;:&nbsp;$searchType&nbsp;||&nbsp;&#39;&#39;,//新增此行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;goto($url,&nbsp;_curr_params,&nbsp;true);
&nbsp;&nbsp;&nbsp;&nbsp;}
});

$(&#39;#search-submit-btn&#39;).click(function&nbsp;()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$url&nbsp;=&nbsp;$(&#39;#search-input&#39;).data(&#39;url&#39;);
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$filed&nbsp;=&nbsp;$(&#39;#search-field&#39;).val();
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$keyword&nbsp;=&nbsp;$(&#39;#search-input&#39;).val();
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$searchType&nbsp;=&nbsp;$(&#39;#search-type&#39;).val();//新增此行
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;_curr_params&nbsp;=&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;search_field&#39;:&nbsp;$filed&nbsp;||&nbsp;&#39;&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;keyword&#39;:&nbsp;$keyword&nbsp;||&nbsp;&#39;&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//注意最后一个,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;searchtype&#39;:&nbsp;$searchType&nbsp;||&nbsp;&#39;&#39;,//新增此行
&nbsp;&nbsp;&nbsp;&nbsp;};

&nbsp;&nbsp;&nbsp;&nbsp;goto($url,&nbsp;_curr_params,&nbsp;true);
});</pre>

<p>&nbsp;</p>

<p>5、找到application/common/controller/Common.php中的方法 getMap()方法:</p>

<p>&nbsp;</p>

<pre>
$search_type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;input(&#39;searchtype&#39;,&nbsp;&#39;&#39;);//新增此行
$map&nbsp;=&nbsp;[];

//&nbsp;搜索框搜索
if&nbsp;($search_field&nbsp;!=&nbsp;&#39;&#39;&nbsp;&amp;&amp;&nbsp;$keyword&nbsp;!==&nbsp;&#39;&#39;)&nbsp;{
&nbsp;&nbsp;//下面此行修改为以下代码:
&nbsp;&nbsp;$map[$search_field]&nbsp;=&nbsp;(empty($search_type)&nbsp;||&nbsp;$search_type&nbsp;==&nbsp;&#39;like&nbsp;&#39;)&nbsp;?&nbsp;[&#39;like&#39;,&nbsp;&quot;%$keyword%&quot;]&nbsp;:&nbsp;[&#39;=&#39;,&nbsp;$keyword];&nbsp;&nbsp;&nbsp;&nbsp;
}</pre>

<p>&nbsp;</p>

<p>6、刷新一下页面,试下效果呗</p>
页: [1]
查看完整版本: dolphinphp海豚后台管理系统搜索功能加=或者like