一个通用的ajax程序(实现像百度一样自动提示功能)
1.jsp+javabean实现ajax
(1),<script type="text/javascript">
String.prototype.trim=function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}
//表名ajax
function ajaxTable(){
var table_name=document.validateRule01.table_name.value;
if(table_name==""){
document.getElementById("result_display").style.visibility='hidden';
return;
}
var X = new ActiveXObject("MSXML2.XMLHTTP.3.0");
//var X = new XMLHttpRequest();
if(X)
{
X.onreadystatechange=function(){
if(X.readyState==4)
{
if(X.status==200)
{
var mobanhtml=X.responseText;
mobanhtml=mobanhtml.trim();
var tableNames = mobanhtml.split(",");
var s = document.getElementById('result_display') ;
s.innerHTML = '';
if(tableNames.length>0){
document.getElementById('result_display').style.visibility='visible';
for(i=0; i < tableNames.length ; i++) {
var suggest = '<div οnmοuseοver="onmouseOver(this);" ';
suggest += 'οnmοuseοut="onmousetOut(this);" ';
suggest += 'οnclick="setSuggestValue(this.innerHTML);" ';
suggest += 'class="onmouset_out">' + tableNames[i] + '</div>';
s.innerHTML += suggest;
}
}
}
else
{
}
}
};
X.open("POST","getTableName.jsp?table_name="+table_name,true);
X.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
X.send();
}
else
{
alert("??");
}
}
function onmouseOver(div) {
div.className = 'onmouse_over';
}
function onmousetOut(div) {
div.className = 'onmouset_out';
}
function setSuggestValue(value) {
document.validateRule01.table_name.value = value;
document.getElementById('result_display').innerHTML = '';
document.getElementById("result_display").style.visibility='hidden';
} 其中红色部分是要修改的部分,其他代码可以照搬
然后是促发这个ajax的text框代码:<input type='text' size='30' style="width:200px" id="txt" name='table_name' value='<%=InitBean.getTable_name()%>' οnkeyup="ajaxTable();" >
在这个text框所在的table外面添加<div id="result_display" style="position:absolute; visibility:hidden; overflow:auto; top:70px; left:195px; width:200px; height:200px; background-color:#ffffff;">
</div>
2.下面是getTableName.jsp的代码:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java"
session="true"
buffer="32kb"
autoFlush="true"
%>
<%@ page import="
com.hoperun.bi.quality.GetTableName,
java.sql.Connection,
java.sql.Statement,
java.sql.ResultSet
"
%>
<%--
response.setHeader("Cache-Control","no-cache"); //Forces caches to obtain a new copy of the page from the origin server
response.setHeader("Cache-Control","no-store"); //Directs caches not to store the page under any circumstance
response.setDateHeader("Expires", 0); //Causes the proxy cache to see the page as "stale"
response.setHeader("Pragma","no-cache"); //HTTP 1.0 backward compatibility
--%>
<%
String table_name=request.getParameter("table_name");
GetTableName getTableName=new GetTableName();
String str=getTableName.getTableNames(table_name);
out.write(str);
%>
3.下面是GetTableName.java的bean代码:
/*
* com.hoperun.bi.beans.SqlEditorBean0101.java
*
* Created on 2006-5-22 14:16:59
*
* Version 1.0.0
*
* Copyright 2003-2005 by NanJing HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and
* IT Forest Corporation
* All rights reserved.
*
* This software is the confidential and proprietary information of
* HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and IT Forest Corporation.
* You shall not disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into with
* HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and IT Forest Corporation.
*/
package com.hoperun.bi.quality;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.webpump.sdk.datasource.DataSourceManager;
/**
* @author wei_yuhong
*
* 表格中文描述和字段描述定义画面Bean,选择数据源分别编辑
*/
public class GetTableName {
private Connection conn;
public GetTableName() throws SQLException{
conn=DataSourceManager.findDataSource("").getConnection();
}
/**
* 执行添加、查询等动作的过程。
* @param objIn 保存有执行此操作所需的所有数据
* @param objOut 保存查询等操作的结果数据
*/
public String getTableNames(String table_name) throws SQLException {
String str="";
try{
String sqlmodel = "select t.table_en_name from hpbi_tablestorage t where t.table_en_name like '"+table_name+"%' order by t.table_en_name";
Statement pStmt = this.conn.createStatement();
ResultSet rsmodel = pStmt.executeQuery(sqlmodel);
while(rsmodel.next()){
str+=rsmodel.getString("table_en_name")+",";
}
}catch(Exception e){
System.out.print(e);
}finally{
try {
if (conn!=null) {
conn.close();
conn = null;
}
} catch (Exception e) {
}
}
return str;
}
}
这样就可以在输入框中输入表名的首字母,就可以自动提示所有以这个字母开头的表名
二.用struts2.0的实现:只要把X.open("POST","getTableName.jsp?table_name="+table_name,true);
中的。getTableName.jsp改成getTableName.action就ok了,还有就是下面的getTableName.action的代码:
package com.hoperun.action;
import java.io.PrintStream;
import java.util.HashMap;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.hoperun.service.GetCloseIdService;
import com.hoperun.service.SalesSearchService;
import com.opensymphony.xwork2.ActionSupport;
public class getCloseIdAction extends ActionSupport
{
/** *//**
*
*/
private static final long serialVersionUID = 1L;
/**//*
*/
private GetCloseIdService getCloseIdService=new GetCloseIdService();
private String clothesid="";
public String getClothesid() {
return clothesid;
}
public void setClothesid(String clothesid) {
this.clothesid = clothesid;
}
@Override
public void validate()
{
}
@Override
public String execute() throws Exception
{
HashMap<String,String> hmInput = new HashMap<String,String>();
String reStr=getCloseIdService.getclothesIds(clothesid);
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=GBK");//解决中文乱码
PrintStream out = new PrintStream(response.getOutputStream());//获取out输出对象
out.println(reStr);
return null;//这里返回的是null
}
}
注意这里action返回的是null,千万记住
一个通用的ajax程序(实现像百度一样自动提示功能)相关推荐
- Ajax实现百度搜索框自动提示功能
Ajax实现百度搜索框自动提示功能 当你在搜索框内写入关键字时下拉框会匹配和你输入的关键字相匹配的信息 文章目录 Ajax实现百度搜索框自动提示功能 一.实现效果 二.代码实现 1.前端页面 2.后端 ...
- 站长工具|百度搜索框提示功能
百度向站长开放免费"百度搜索框"代码和"百度搜索框提示"代码.只需进行简单的设置, 即可将" 百度搜索框( 带提示功能)"功能快速加入到您的 ...
- python控制相机自动拍照_微信小程序实现倒计时调用相机自动拍照功能
这篇文章主要为大家详细介绍了微信小程序实现倒计时调用相机自动拍照功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了微信小程序定时拍照的具体代码,供大家参考,具体内容如下 在某 ...
- 在Ajax程序中实现无刷新换肤功能(asp.net2.0)
写了一年多的WEB程序,觉得程序中换肤的功能是非常吸引人眼球的技术.特别是在子父级的WEB平台与论坛上应用广泛,可以突出不同人的风格与个性. 从文章的标题上看是Ajax的无刷新换肤,只是本 ...
- 仿百度,谷歌输入框自动提示功能
大家使用百度谷歌的时候都会有输入自动提示的功能,心血来潮自己用Ajax模拟了一个,和大家分享分享. 下面让我们先看下效果: 输入自动提示 键盘上下移动选取 鼠标选取同样支持 支持中文匹配 JS ...
- 黑马ajax学习笔记02--art-template模板,自动提示,防抖,三级联动,fromData传参及传文件,同源,jsonp,天气预报,CROS,服务器桥接,withCredential跨域登录
1.模板引擎概述 作用:使用模板引擎提供的模板语法,可以将数据和HTML拼接起来 实际上是实现在客户端做数据拼接 art-template模板引擎 官网:http://aui.github.io/ar ...
- ajax 文本框 搜索,JQuery+AJAX实现搜索文本框的输入提示功能
平时使用谷歌搜索的时候发现只要在文本框里输入部分单词或字母,下面马上会弹出一个相关信息的内容框可供选择.感觉这个功能有较好的用户体验,所以也想在自己的网站上加上这种输入提示框. 实现的原理其实很简单, ...
- 百度搜索自动提示搜索相关内容----模拟实现
最近做项目,在和user 洽谈时,在输内容时提示数据库已存在的相似内容,也就是模糊匹配.怎么实现这个功能呢? 当然现在软件开发都是讲究高效,开发周期短,第一个想的是又没相似的控件可以实现这种效果,在搜 ...
- 文本框输入即时Ajax搜索,JQuery+AJAX实现搜索文本框的输入提示功能
平时使用谷歌搜索的时候发现只要在文本框里输入部分单词或字母,下面马上会弹出一个相关信息的内容框可供选择.感觉这个功能有较好的用户体验,所以也想在自己的网站上加上这种输入提示框. 实现的原理其实很简单, ...
最新文章
- 三维曲面matlab程序,用matlab画三维曲面图 - 程序语言 - 小木虫 - 学术 科研 互动社区...
- 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
- 015 已接任务链表和任务库二叉树遍历
- Quick Audience精准营销之后 良品铺子还将借力阿里云数据中台有更多动作
- J2ME开发环境配置(MyEclipse插件+WTK+jdk)
- 【Pytorch神经网络实战案例】16 条件WGAN模型生成可控Fashon-MNST模拟数据
- java 二维数组位置_java 找到二维数组指定元素的位置
- Jmeter如何将上一个请求的结果作为下一个请求的参数——使用正则表达式提取器转载...
- 华为正式发布鸿蒙OS操作系统,分布式架构首次用于终端
- Rabbitmq的安装及集群环境的搭建
- Java与算法之(2) - 快速排序
- CPU虚拟化技术解析
- Windows 下使用PDH 获取CPU 使用率
- Airbnb Embeding学习笔记
- spring定时任务需要在项目启动时执行一次
- 2021年电工(初级)报名考试及电工(初级)考试内容
- IT培训机构如何选择
- 【从零学习OpenCV 4】Windows系统中安装OpenCV 4
- pip及openpyxl安装
- 5V转3.3V的N种方法