jsp:javascript中如何动态获取数据库的数组
<divalign="center"><form><inputid="auto"name="p_id"type="text">//从这里获取p_id的值</form></...
<div align="center">
<form>
<input id="auto" name="p_id" type="text">//从这里获取p_id的值
</form>
</div>
<%
String p_id=request.getParameter("p_id");
List mylist=new ArrayList();
ConnDB conn=new ConnDB();
String sql="select p_name from product where p_id like '%"+p_id+"%'";
ResultSet rs=conn.doQuery(sql);
while(rs.next())
{
mylist.add(rs.getString("p_name"));
}
String arr="";
for (int i=0;i<mylist.size();i++)
{
arr=arr+mylist.get(i)+",";
}
arr=arr.substring(0,arr.length()-1);
%>
<SCRIPT LANGUAGE="JavaScript">
<!--
//var jsAutoInstance = new jsAuto("jsAutoInstance","divc");
var ar=new Array[<%=arr %>];
</script>
<%
for(var i=0;i<ar.length;i++)
{%>
<SCRIPT LANGUAGE="JavaScript">
。。。。。
}
我的意思就是,在Jsp页面一个文本框,根据输入的字段,模糊查询出与其关联的数据,然后再文本框自动的列出来,类似于在百度搜索栏。。请高手帮帮忙啊,在线等 展开
<form>
<input id="auto" name="p_id" type="text">//从这里获取p_id的值
</form>
</div>
<%
String p_id=request.getParameter("p_id");
List mylist=new ArrayList();
ConnDB conn=new ConnDB();
String sql="select p_name from product where p_id like '%"+p_id+"%'";
ResultSet rs=conn.doQuery(sql);
while(rs.next())
{
mylist.add(rs.getString("p_name"));
}
String arr="";
for (int i=0;i<mylist.size();i++)
{
arr=arr+mylist.get(i)+",";
}
arr=arr.substring(0,arr.length()-1);
%>
<SCRIPT LANGUAGE="JavaScript">
<!--
//var jsAutoInstance = new jsAuto("jsAutoInstance","divc");
var ar=new Array[<%=arr %>];
</script>
<%
for(var i=0;i<ar.length;i++)
{%>
<SCRIPT LANGUAGE="JavaScript">
。。。。。
}
我的意思就是,在Jsp页面一个文本框,根据输入的字段,模糊查询出与其关联的数据,然后再文本框自动的列出来,类似于在百度搜索栏。。请高手帮帮忙啊,在线等 展开
3个回答
展开全部
这是一种“文本智能提示”技术,很多js框架都提供此功能。
针对你的这种情况给如下建议:
(1)目前来看,凡是你想到的可以复用的插件,网上基本上都可以搜索到,不要自己重复造车;
(2)如果你智能提示的文本是有范围的,例如:省份等常用文本,那么就可以使用该技术,使用时一次性将该所有省份信息加载到前端;如果你的文本范围是动态的,而且是数据量挺大,建议不要使用该功能。
像楼上两位哥们说的,onchange事件触发一次就向后台查一次数据库,这种方案技术上可行,在现实中基本上是不可行的,你能想象当用户输入一次文本就“被卡”的情景么,我要是用户我会发疯的。
针对你的这种情况给如下建议:
(1)目前来看,凡是你想到的可以复用的插件,网上基本上都可以搜索到,不要自己重复造车;
(2)如果你智能提示的文本是有范围的,例如:省份等常用文本,那么就可以使用该技术,使用时一次性将该所有省份信息加载到前端;如果你的文本范围是动态的,而且是数据量挺大,建议不要使用该功能。
像楼上两位哥们说的,onchange事件触发一次就向后台查一次数据库,这种方案技术上可行,在现实中基本上是不可行的,你能想象当用户输入一次文本就“被卡”的情景么,我要是用户我会发疯的。
展开全部
你这样把java代码写在jsp页面上面看着眼睛疼,现在都不在jsp页面写java代码了,把它分离开呀.
你说的那个功能,给你讲一下思路,顺着思路学一下,写出来,肯定有收获的.
在jsp文本框输入,给它一个onchange事件,当它改变的时候触发一个方法,方法里面有一个ajax,通过它把jsp文本框里面的值传到后台,然后再在后台写一个模糊查询的sql,查询数据库,把得到的结果通过ajax返回到页面上,并且把它写到页面上就ok了.
你说的那个功能,给你讲一下思路,顺着思路学一下,写出来,肯定有收获的.
在jsp文本框输入,给它一个onchange事件,当它改变的时候触发一个方法,方法里面有一个ajax,通过它把jsp文本框里面的值传到后台,然后再在后台写一个模糊查询的sql,查询数据库,把得到的结果通过ajax返回到页面上,并且把它写到页面上就ok了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上正解。要实现这种效果就要用ajax,至于你使用js写,还是用jquery等框架就随便了你。不过看你这种代码风格应该是新手吧,这样的源代码看起来太晕了。好好看一下ajax吧,基本应用不难的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询