GVKun编程网logo

把dedecms的搜索框,改为自己的多功能搜索框...(dedecms插件)

21

在这篇文章中,我们将为您详细介绍把dedecms的搜索框,改为自己的多功能搜索框...的内容,并且讨论关于dedecms插件的相关问题。此外,我们还会涉及一些关于Ajax怎么做出智能搜索框的提示功能、

在这篇文章中,我们将为您详细介绍把dedecms的搜索框,改为自己的多功能搜索框...的内容,并且讨论关于dedecms插件的相关问题。此外,我们还会涉及一些关于Ajax怎么做出智能搜索框的提示功能、android搜索框,推荐搜索,历史搜索、Android自定义搜索框,封装了 历史搜索记录功能和样式、css – 搜索框内的搜索按钮,如Bing的知识,以帮助您更全面地了解这个主题。

本文目录一览:

把dedecms的搜索框,改为自己的多功能搜索框...(dedecms插件)

把dedecms的搜索框,改为自己的多功能搜索框...(dedecms插件)

 

<!--body {font-size: 12px}-->
把dedecms的搜索框,改为自己的多功能搜索框!

把 head.htm 的 <form>与</form>之间的代码,替换为以下代码:

<form name=bf *****ubmit="bottomForm();return false;"> <script> function bottomForm(){ var $=document.bf.key.value; if(document.bf.sto[0].checked)window.open("./plus/search.php?kwtype=0&keyword="+$,"a1"); if(document.bf.sto[1].checked)window.open("?q1="+"&q6=b日志.sina.com.cn","a2"); if(document.bf.sto[2].checked)window.open("?hl=zh-CN&q="+"&as_sitesearch=b日志.sina.com.cn","a3"); // if(document.bf.sto[3].checked)window.open("?id=1&search="+$,"a4"); // if(document.bf.sto[4].checked)window.open("?word="+$,"a5"); // if(document.bf.sto[5].checked)window.open("?kw="+"&submit=search","a6"); return false} </script> <div > <h4>搜索</h4> <!-- <input name="key" value="(输入搜索内容……)"> --> <input name="key" value="(输入搜索内容……)" onfocus="if(this.value=='(输入搜索内容……)'){this.value='';}" onblur="if(this.value==''){this.value='(输入搜索内容……)';}"> <input name=sto type=radio value="0" checked=true>本站内 <input name=sto type=radio value="1"><a href=http://www.dede58.com/a/dedejq/"http:/www.百度.com">baidu</a> <input name=sto type=radio value="2"><a href=http://www.dede58.com/a/dedejq/"http:/www.谷歌.cn">Google</a> <!-- <input name=sto type=radio value="3"><a href=http://www.dede58.com/a/dedejq/"http:/www.gougou.com">狗狗</a> <input name=sto type=radio value="4"><a href=http://www.dede58.com/a/dedejq/"http:/map.百度.com">地图</a> <input name=sto type=radio value="5"><a href=http://www.dede58.com/a/dedejq/"http:/baike.百度.com">百科</a> --> <button type="submit" >搜索</button> </div> </form>  


其中,“b日志.sina.com.cn” 换成你自己的独立域名

原来的以下这段,似乎是用不上了,本人这样屏蔽掉:

<!--
<div >
<h4>热门标签:</h4>
<ul>
{dede:tag row='10' getall='1' sort='month'}
<li><a href='[field:link/]'>[field:tag /]</a></li>
{/dede:tag}
</ul>
</div>
--> 本文章网址:http://www.ppssdd.com/code/13346.html。转载请保留出处,谢谢合作!

Ajax怎么做出智能搜索框的提示功能

Ajax怎么做出智能搜索框的提示功能

这次给大家带来Ajax怎么做出智能搜索框的提示功能,Ajax做出智能搜索框提示功能的注意事项有哪些,下面就是实战案例,一起来看一下。

利用无刷新技术智能变换搜索框的提示,同百度搜索

效果图

这里写图片描述

其基本原理:

1.给搜索框编写js绑定事件onkeyup(键盘输入时)、onfocus(当鼠标点击搜索框外的时候清空提示)

2.首先获得用户输入、之后将获得的数据传给服务器,服务器将数据传给后台,后台获取服务器传来的数据进行处理,得到关联数据,向前端返回json格式,前端通过回调函数,将返回来的json解析成文本,将文本传输到搜索框下方的展示窗

如下为支持json的jar包

这里写图片描述

search.jsp

nbsp;html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;


<title>ajax搜索</title><script>
//获得更多关联信息的函数
function getMore(){
 var xmlHttp;
 //首先获得用户的输入
 var content = document.getElementById("keyword");
 if(content.value==""){
  keywordBlur();//执行一下清空方法,使搜索框在无数据的时候,下方残留数据也动态清空
  return;
 }
 //alert(content.value);
 //要给服务器发送用户输入的内容,要创建对象,叫XmlHttp对象
 //xmlHttp=获得XmlHttp对象
 xmlHttp=CreatXMLHttp();
 //alert(xmlHttp);
 //要给服务器发送数据
 var url="serch?keyword="+escape(content.value);
 //如果不用escape这个函数转化一下的话,传中文会有问题
 //true表示javascript的脚本会在send()方法之后继续执行,而不会等待来自服务器的相应
 xmlHttp.open("GET",url,true);
 //xmlHttp绑定一个回调方法去接受服务器传来的相应,会在xmlHttp状态改变的时候被调用
 //xmlHttp有0~4的状态,只关心4的方法
 //4为complete状态,表示交互完成,当交互完成时才会调用回调方法
 xmlHttp.onreadystatechange=callback;
 xmlHttp.send(null);//send里面发送的是内容体,但参数在URL里已经都写完了
 //回调函数==!!注意 这里回调方法要在方法内创建,因为创建的xmlHttp对象不是全局变量
 //是在getMore()方法里创建的,可以将变量提取出来,变成全局变量
 function callback(){
  if (xmlHttp.readyState==4){
   //200代表服务器相应成功。。。404代表资源未找到。。500服务器内部错误
   if(xmlHttp.status==200){
    //交互成功,获得相应的数据,是文本格式
    var result=xmlHttp.responseText;
    //解析json格式
    var json=eval("("+result+")");//要在两边加个小括号,js才能认识
    //获得数据之后就可以开始展示了。在输入框的下边展示
    setContent(json);
   }
  }
 }
 //设置关联数据展示,参数代表的是服务器传递过来的关联数据
 function setContent(contents){
  //setLocation();//设置跟输入框一样宽度
  keywordBlur();//在每次得到值之前先清空一下之前的残留数据
  var size=contents.length;//根据关联的数据长度,来生成多少<tr>
  //设置内容
  for(var i=0;i<size;i++){
   //不用appendChild()方法是因为不同浏览器可能不兼容该方法
   var nextNode=contents[i];//代表json格式的第i个元素 
   var newRow=content_table_body.insertRow();//创建行
   var newCell=newRow.insertCell();//创建单元格
   newCell.innerHTML=contents[i];//将数据赋值给单元格
  } 
 }
}
//获得XmlHttp对象
function CreatXMLHttp(){
 //要考虑不同浏览器的写法
 //大多数浏览器使用
 var xmlHttpReq;
 if(window.XMLHttpRequest){//火狐
  xmlHttpReq=new XMLHttpRequest();
 }else{
  /* if(window.ActiveXObject){
   xmlHttpReq=neww ActiveXObject("Microsoft.XMLHTTP");
   //例如ie有很多版本,不一定能创建出来这个对象,所以要添加以下一个判断
   //换一种方法,保证创建
   if(!xmlHttp){
    xmlHttpReq=new ActiveObject("Msxml2.XMLHTTP");
   }
  } */
  //一定要如下格式写 上述格式火狐IE亲测不好使
   try { //IE
    xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch (e) {
    try {//IE 浏览器
     xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
    }
   }
 }
 return xmlHttpReq;
}
//失去焦点的时候
function keywordBlur(){
 //要获得body的元素长度,才能知道要遍历多少次
  var contentTableBody=document.getElementById("content_table_body"); 
  var size=contentTableBody.childNodes.length; 
   //因为是删除子节点,所以是从后往前才能删,同二叉树,删除子节点
  for(var i=size-1;i>=0;i--){ 
   contentTableBody.removeChild(contentTableBody.childNodes[i]); 
  } 
  document.getElementById("popp").style.border="none"; 
}
</script><style>
/* #myp{
 position: absolute;
 left:30%;
 top:50%;
 margin-left: 100px;
} */
.mouseOver{
 background: #708090;
 color: #FFFAFA;
}
.mouseOut{
 background: #FFFAFA;
 color: #000000;
}
</style>
 <p>
  <!-- 输入框 -->
  <input>
  <input>
  <!-- 下面是内容展示的区域 -->
  </p><p>
   </p>
登录后复制
                        
    

SearchServlet.class

package com.ninka;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
public class SearchServlet extends HttpServlet{
 static List<string> datas = new ArrayList<string>();
 static{
  datas.add("ajax1");
  datas.add("ajax2");
  datas.add("ajax3");
  datas.add("bichi1");
  datas.add("bichi2");
  datas.add("php"); 
  datas.add("javascript"); 
  datas.add("java"); 
  datas.add("html"); 
 }
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException {
  //设置下编码格式
  request.setCharacterEncoding("UTF-8");
  response.setCharacterEncoding("UTF-8");
  System.out.println("123");
  //首先获得客户端传来的数据,,注意传过来的参数关键字一定要写对,否则会空指针异常
  String keyword = request.getParameter("keyword");
  //获得关键字之后进行处理,得到关联数据
  List<string> listData = getData(keyword);
  //返回json格式
  System.out.println(JSONArray.fromObject(listData));
  //JSONArray.fromObject(listData);
  response.getWriter().write(JSONArray.fromObject(listData).toString());
 }
 //获得关联数据方法
 public List<string> getData(String keyword){
  List<string> list = new ArrayList<string>();
  for(String data:datas){
   //如果传递过来的数据,属于词库里面的话,那么就把包含关键词的数据打包成list,向客户端传
   if(data.contains(keyword)){
    list.add(data);
   }
  }
  return list;
 }
}</string></string></string></string></string></string>
登录后复制

web.xml

<?xml  version="1.0" encoding="UTF-8"?><web-app>
 <display-name>ajaxtest</display-name>
 <welcome-file-list>
  <welcome-file>search.jsp</welcome-file>
 </welcome-file-list>
 <servlet>
 <!-- 为什么要用search?因为在js中定义url的时候写的是search -->
  <servlet-name>search</servlet-name>
  <servlet-class>com.ninka.SearchServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>search</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping></web-app>
登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

ajax的校验功能怎样用SSM整合框架实现

PHP+Ajax如何实现表格的实时编辑

以上就是Ajax怎么做出智能搜索框的提示功能的详细内容,更多请关注php中文网其它相关文章!

android搜索框,推荐搜索,历史搜索

android搜索框,推荐搜索,历史搜索

image.png

 使用方法 ###Add it in your root build.gradle at the end of repositories: allprojects { repositories { ... maven { url "https://jitpack.io" } } }

原文地址:http://www.apkbus.com/blog-92...

Add the dependency dependencies { compile ''com.github.chengzipi:Searchbox:v1.0.0'' }

举例说明 ##XML #### 属性方法 app:search_hint hint内容 app:search_baground 搜索框背景

Code //历史搜索数据 String shareData = "澳洲美食,长沙美食,韩国料理,日本料理,舌尖上的中国,意大利餐,山西菜"; List skills = Arrays.asList(shareData.split(","));

    //热门搜索数据
    String shareHotData = "粤菜,浙菜,苏菜";
    List skillHots = Arrays.asList(shareHotData.split(","));

    this.msearchLy.initData(skills, skillHots, new setSearchCallBackListener() {
        public void Search(String str) {
          //进行或联网搜索  str搜索关键词
        }

        public void Back() {
            //取消搜索
            demo.this.finish();
        }

        public void ClearOldData() {
          //清除历史搜索记录  执行更新本地 原始历史搜索数据
        }

        public void SaveOldData(ArrayList<String> AlloldDataList) {
            //保存所有历史搜索数据  请保保存以便下次使用
        }
    }

Android自定义搜索框,封装了 历史搜索记录功能和样式

Android自定义搜索框,封装了 历史搜索记录功能和样式

示意图

原文地址:http://www.apkbus.com/blog-92...

1. 简介

一款封装了 历史搜索记录功能 & 样式 的Android自定义搜索框

已在Github开源:地址:SearchLayout,欢迎 Star !

[示意图]()

2. 功能介绍

2.1 需求场景

[示意图]()

2.2 功能需求

  • 功能列表

[示意图]()

  • 功能原型

[示意图]()

2.3 功能示意

[示意图]()

3. 特点

3.1 功能实用

  • 该搜索框开源库具备除了历史搜索记录功能外,还具备一般的搜索框功能(如一键清空搜索框内容等等)
  • 封装了 常见的搜索框样式(如左侧图标、返回按键等等),使用起来更加方便

3.2 使用简单

仅需要简单的xml属性配置

下面1节会详细介绍其使用方法

3.3 二次开发成本低

  • 本项目已在 Github上开源:地址:SearchLayout
  • 具备详细的源码分析文档:请看文章[Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)]

所以,在其上做二次开发 & 定制化成本非常低。

4. 具体使用

该款[SearchLayout]()使用非常简单,仅需2步:

步骤1:导入控件库

主要有 Gradle & Maven 2种方式:

  • 方式1:Gradle引入依赖 build.Gradle
dependencies {
    compile ''com.carson_ho:SearchLayout:1.0.1''
}
  • 方式2:Maven引入依赖 pom.xml
<dependency>
  <groupId>com.carson_ho</groupId>
  <artifactId>SearchLayout</artifactId>
  <version>1.0.1</version>
  <type>pom</type>
</dependency>

步骤2:设置搜索框样式

  • 具体属性设置

[示意图]()

  • 使用示例 在XML文件中进行设置 activity_main.xml
<scut.carson_ho.searchview.SearchView
        android:id="@+id/search_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:textSizeSearch="5dp"
        app:textColorSearch="#3F51B5"
        app:textHintSearch="输入查询关键字"
        app:searchBlockHeight="150"
        app:searchBlockColor="#ffffff"
        />

步骤3:设置点击键盘上的搜索按键 & 返回按键后的操作

MainActivity.java

// 1\. 初始化搜索框变量
    private SearchView searchView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 2\. 绑定视图
        setContentView(R.layout.activity_search);

        // 3\. 绑定组件
        searchView = (SearchView) findViewById(R.id.search_view);

        // 4\. 设置点击键盘上的搜索按键后的操作(通过回调接口)
        // 参数 = 搜索框输入的内容
        searchView.setOnClickSearch(new ICallBack() {
            @Override
            public void SearchAciton(String string) {
                System.out.println("我收到了" + string);
            }
        });

        // 5\. 设置点击返回按键后的操作(通过回调接口)
        searchView.setOnClickBack(new bCallBack() {
            @Override
            public void BackAciton() {
                finish();
            }
        });
    }
}

(https://github.com/Carson-Ho/.... 完整Demo地址

Carson_Ho的Github地址:SearchLayout

[示意图]

css – 搜索框内的搜索按钮,如Bing

css – 搜索框内的搜索按钮,如Bing

如何在Bing等网站上看到搜索框内的搜索按钮?

解决方法

它只是看起来像在里面,但它不是(你不能把html放在输入中).

2个元素(输入和按钮)靠近在一起,边距为0,两者都具有相同的高度.按钮的图形具有3px白色边距.所以它创造了这种效果.

可能的标记和样式可能是:

<input type="text" id="q" />
<input type="button" id="b" value="Search" />


#q,#b { 
   margin: 0 
}
#q { 
   padding: 5px; 
   font-size: 2em; 
   line-height: 30px 
}
#b { 
   /* image replacement */
   text-indent: -99999px; 
   width: 30px; 
   height: 30px; 
   display: block;
   background: gray url(button.png) 0 0 no-repeat;

   /* placing next to input using float or absolute positioning omitted ... */
}

今天关于把dedecms的搜索框,改为自己的多功能搜索框...dedecms插件的介绍到此结束,谢谢您的阅读,有关Ajax怎么做出智能搜索框的提示功能、android搜索框,推荐搜索,历史搜索、Android自定义搜索框,封装了 历史搜索记录功能和样式、css – 搜索框内的搜索按钮,如Bing等更多相关知识的信息可以在本站进行查询。

本文标签: