在这篇文章中,我们将为您详细介绍把dedecms的搜索框,改为自己的多功能搜索框...的内容,并且讨论关于dedecms插件的相关问题。此外,我们还会涉及一些关于Ajax怎么做出智能搜索框的提示功能、
在这篇文章中,我们将为您详细介绍把dedecms的搜索框,改为自己的多功能搜索框...的内容,并且讨论关于dedecms插件的相关问题。此外,我们还会涉及一些关于Ajax怎么做出智能搜索框的提示功能、android搜索框,推荐搜索,历史搜索、Android自定义搜索框,封装了 历史搜索记录功能和样式、css – 搜索框内的搜索按钮,如Bing的知识,以帮助您更全面地了解这个主题。
本文目录一览:- 把dedecms的搜索框,改为自己的多功能搜索框...(dedecms插件)
- Ajax怎么做出智能搜索框的提示功能
- android搜索框,推荐搜索,历史搜索
- Android自定义搜索框,封装了 历史搜索记录功能和样式
- css – 搜索框内的搜索按钮,如Bing
把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做出智能搜索框提示功能的注意事项有哪些,下面就是实战案例,一起来看一下。
利用无刷新技术智能变换搜索框的提示,同百度搜索
效果图
其基本原理:
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"> <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搜索框,推荐搜索,历史搜索
使用方法 ###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自定义搜索框,封装了 历史搜索记录功能和样式
原文地址: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
解决方法
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等更多相关知识的信息可以在本站进行查询。
本文标签: