获取信息的方法和装置 【技术领域】
本发明涉及智能交通领域,尤其涉及一种获取信息的方法和装置。
背景技术
目前,通过互联网发布交通信息是交通信息服务最方便的形式。交通信息服务系统能够通过输入的关键词,快速查找出关键词对应的相关信息,从而智能地指导用户的出行。
在实现本发明的过程中,发明人发现,在目前的交通信息服务系统中,用户必须输入一个完整的关键词,才能使系统根据这个关键词获取对应的信息,从而使得用户的输入操作繁琐。
【发明内容】
本发明的实施例提供一种获取信息的方法和装置,能够简化用户的输入。
为达到上述目的,本发明的实施例采用如下技术方案:
一种获取信息的方法,包括:
获取用户输入信息;
向服务器发送所述用户输入信息;
接收服务器返回的信息集合,所述信息集合为预先设置的与所述用户输入信息相关的信息集合;
从所述信息集合中选取用户指定的信息。
一种获取信息的装置,包括:
第一获取单元,用于获取用户输入信息;
发送单元,用于向服务器发送由所述第一获取单元获取的用户输入信息;
接收单元,用于接收服务器返回的信息集合,所述信息集合为预先设置的与所述用户输入信息相关的信息集合;
选取单元,用于从由所述接收单元接收的信息集合中选取用户指定的信息。
本发明实施例提供的获取信息的方法和装置,由于是根据用户输入的信息从服务器端获取与所述用户输入信息相关的信息集合,从所述信息集合中选取用户所需要的信息,使用户在仅输入一部分字母或汉字的情况下,获取与该字母或汉字相关的所有关键词,供用户进行选择。解决了现有技术中,用户必须输入一个完整的关键词,才能获取对应路线的问题。本发明的实施例提供的获取信息的方法和装置,能够简化用户的输入。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的获取信息的方法流程图;
图2为本发明另一实施例提供的获取信息的方法流程图;
图3为本发明实施例提供的获取信息的装置结构示意图一;
图4为本发明实施例提供的获取信息的装置结构示意图二。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有的交通信息服务系统中,由于用户必须输入一个完整的关键词,才能获取对应的路线,从而使用户的输入操作繁琐的问题,本发明实施例提供一种获取信息的方法和装置。
如图1所示,本发明实施例提供的获取信息的方法,包括:
步骤101,获取用户输入信息;
步骤102,向服务器发送所述用户输入信息;
步骤103,接收服务器返回的信息集合,所述信息集合为预先设置的与所述用户输入信息相关的信息集合;
步骤104,从所述信息集合中选取用户指定的信息。
本发明实施例提供的获取信息的方法,由于是根据用户输入的信息从服务器端获取与所述用户输入信息相关的信息集合,从所述信息集合中选取用户所需要的信息,使用户在仅输入一部分字母或汉字的情况下,获取与该字母或汉字相关的所有关键词,供用户进行选择。解决了现有技术中,用户必须输入一个完整的关键词,才能获取对应路线的问题。
如图2所示,本发明另一实施例提供的获取信息的方法,包括:
步骤201,获取用户输入信息;
在本实施例中,首先用超文本标记语言(Hyper Text Mark-up Language,HTML)编写一个文本输入框,用户在所述文本输入框中输入信息。所述输入信息可以是一个或几个汉字,也可以是一个或几个字母。用HTML语言得到一个文本输入框的代码为:<input id=″txt″type=″text″/>。其次,用一个函数来获取用户输入的汉字或者字母信息。具体获取的方法是在上述文本输入框的HTML标签上加入键盘监听事件,在程序中用onkeyup标记。表示当用户的键盘按钮抬起时,触发一个预先设定的函数,将用户通过敲击键盘所输入的汉字或字母信息作为所述函数的参数传入。所述函数是一个自定义函数search(),它通过调用网页开发技术Ajax的异步请求函数XmlHttpRequest对象中的open()函数来设置信息传送属性,并且通过调用XmlHttpRequest对象中的send()函数向服务器发送请求。其中,所述open()函数中的参数包括:需要发送请求的服务器地址、采用的请求方式等。本实施例中,采用异步请求方式发送数据。
需要说明的是,有一部分键盘按键是不被作为参数传入到所述函数open()中的。例如,当用户按下回车键,或者取消键ESC,或者向上键,或者向下键等按键时,会被自动地过滤掉而不传入函数中。具体过滤这些按键的方法也是加入键盘监听事件,在程序中用onkeydown标记,用来检测用户按下的按键类型。所述按键类型可以用预先设定的键码来表示,例如,回车键在程序中的键码为13,取消键的键码是27,向上键的键码是38,向下键的键码是40。即当检测到上述键码时,不传入参数。上述键盘监听事件的具体实现代码如下:
<input id=″txt″type=″text″onkeyup=″search(event)″
onkeydown=″catchKeyBoard(event)″/>
步骤202,向服务器发送所述用户输入信息;
在本实施例中,采用Ajax技术的异步性向服务器发送所获取到的用户输入信息。由于Ajax技术的异步性可以实现当前页面无刷新地与所述服务器交互数据,使得用户体验更好。在本实施例中,通过Ajax技术中的XmlHttpRequest对象来发送所述用户输入信息。具体方法为:首先进行初始化,引入网页脚本语言JavaScript代码;其次,声明XmlHttpRequest对象,不同的浏览器所采用的声明方法不同,例如,IE浏览器使用代码var xmlHttpReq=newActiveXObject(“Msxml12.XMLHTTP”)来获取XmlHttpRequest对象;FireFox浏览器使用代码var xmlHttpReq=new XMLHttpRequest()来获取XmlHttpRequest对象。获取XmlHttpRequest对象后,调用所述XmlHttpRequest对象中的open()函数,将在步骤201中所获取的用户输入信息发送给服务器,其中,所述服务器的地址为open()函数中的一个参数。服务器接收到open()函数传来的用户输入信息后,在预先设置的数据库中查找与所述用户输入信息相关的信息,例如,用户在文本输入框中输入的信息为zc,与之相关的信息可以是“知春里”、“知春路”等信息。所有相关信息组成一个相关信息集合,用一串字符串表示,每条信息之间用一个预定的标示符来分隔,以便后续对其进行解析。所述标示符可以是空格键、回车键、“&”键等特定标示符中的一种。将查找到的相关信息集合再通过XmlHttpRequest对象返回给终端。若用户输入的信息在服务器上没有查找到对应的相关信息,则返回值为空。
步骤203,接收服务器返回的信息集合,所述信息集合为预先设置的与所述用户输入信息相关的信息集合;
在本实施例中,首先要判断所述信息集合的接收状态,即判断所述信息集合是否全部接收、所述信息集合是否是正确的结果。具体的判断方法是检测程序中所用参数xmlHttp和xmlHttp.status的值,当xmlHttp=4且xmlHttp.status=200时,表示接收服务器返回的信息集合成功。所述信息集合在程序中用参数xmlHttp.responseText的值来表示。
步骤204,将所述信息集合解析为每行存储一条信息的信息列表;
在本实施例中,当xmlHttp.responseText的值不为空时,对该值进行解析。即将步骤202中所获得的字符串解析为汉字信息,并根据所述分隔标示符将所述汉字信息中的每一条信息提取出来,获得一个信息列表。
步骤205,获取所述信息列表的显示位置;
在本实施例中,获取所述信息列表的显示位置之前,首先设置一个显示区域,用于放置信息列表,显示信息列表实际上是显示该显示区域。并且,该显示区域在没有用户输入、不需要显示相关信息的情况下,是隐藏的。本实施例中,采用HTML中用来为文本内容提供结构和背景的Div标签来实现。具体设置Div标签的代码如下,此代码设置了Div标签的位置、宽度、边框样式等属性:<div id=″suggest″style=″z-index:10;display:none;position:absolute;text-align:left;width:153px;border:1px solid #000000″></div>。
本实施例中,可以设置在文本输入框附近的任何位置来显示该显示区域。获取该显示区域的代码如下:
document.getElementById(′suggest′).style.display=″。
步骤206,在所述显示位置上显示所述信息列表;
在本实施例中,将所述信息列表中的每行信息放置到一个小的Div标签中,再将所有小Div标签放置到步骤205所述的显示区域中,通过显示所述显示区域来显示信息列表,具体代码如下:
var str=xmlHttp.responseText;
str1=str.split(″&″);
var result=″″;
for(i=0;i<str1.length-1;i++){
result+=″<div
id=\″menuItem″+(i+1)+″\″onmouseover=\″forceMenuItem(″+(i+1)+″);\″″;
result+=″onmouseout=\″loseMenuItem(″+(i+1)+″);\″″;
result+=″onclick=\″givNumber(″+i+″)\″
ondblclick=\″choseNumber(″+i+″);\″″;result+=′class=″suggest_link″>′+str1[i]+′
</div>′;
}
document.getElementById(″suggest″).innerHTML=result;
步骤207,从所述信息列表中选取用户指定的信息。
在本实施例中,用户从显示出来的信息列表中用键盘或者鼠标选择自己想要的信息。例如,信息列表中列出两条相关信息“知春路”和“知春里”,用户选择“知春路”,该词会被系统选取,自动进入文本输入框中作为查询路线的关键词。
具体用键盘选取信息方法为:首先用层叠样式表(Cascading Style Sheets,CSS)设置被选中信息的样式,包括被选中信息的宽度、背景颜色等属性,其代码如下:suggest_link{background-color:#FFFFCC;padding:2px 6px 2px 6px;width:141px;}。然后,在程序中设置一个指针变量var menuFocusIndex=-1,用来标识当前选中的信息,称为焦点值。当用户敲击向下键,即检测到的键码为40时,menuFocusIndex的值加1,并通过上述层叠样式表CSS设置所述焦点值的样式,其它未选中信息的样式为默认值,同时将焦点值显示在文本输入框中;当用户敲击向上键,即检测到的键码为38时,menuFocusIndex的值减1,并通过上述层叠样式表CSS设置所述焦点值的样式,其它未选中信息的样式为默认值,同时将焦点值显示在文本输入框中;当用户敲击回车键确认所选中的信息,即检测到的键码为13时,将显示区域Div标签中的值清空,并隐藏该显示区域,同时将menuFocusIndex的值变为初始值-1,表示选取信息完成。
具体用鼠标选取信息方法为:在信息列表中的每行信息所对应的Div标签上加入鼠标监听事件onmouseover和onmouseout,其中,onmouseover表示当鼠标移动到某条信息上时,用层叠样式表CSS设置所述信息样式;onmouseout表示当鼠标移出该信息时,该信息样式恢复为默认;由用户点击鼠标确认所选中的信息。
本发明实施例提供的获取信息的方法,由于是根据用户输入的信息从服务器端获取与所述用户输入信息相关的信息集合,从所述信息集合中选取用户所需要的信息,使用户在仅输入一部分字母或汉字的情况下,获取与该字母或汉字相关的所有关键词,供用户进行选择。解决了现有技术中,用户必须输入一个完整的关键词,才能获取对应路线的问题。
如图3所示,本发明实施例还提供一种获取信息的装置,包括:
第一获取单元301,用于获取用户输入信息;
在本实施例中,用超文本标记语言HTML所编写的文本输入框来获取用户的输入信息。当用户按下的是回车键,或者取消键ESC,或者向上键,或者向下键等按键时,不作为用户输入信息获取。
发送单元302,用于向服务器发送由所述第一获取单元301获取的用户输入信息;
在本实施例中,采用Ajax技术的异步性向服务器发送所获取到的用户输入信息。由于Ajax技术的异步性可以实现当前页面无刷新地与所述服务器交互数据,使得用户体验更好。
接收单元303,用于接收服务器返回的信息集合,所述信息集合为预先设置的与所述用户输入信息相关的信息集合;
选取单元304,用于从由所述接收单元303接收的信息集合中选取用户指定的信息。
在本实施例中,可以用鼠标或者键盘来选取用户指定的信息。
进一步地,如图4所示,所述获取信息的装置还包括:
解析单元305,用于将由所述接收单元303接收的信息集合解析为每行存储一条信息的信息列表;
第二获取单元307,用于获取由所述解析单元305解析的信息列表的显示位置;
显示单元306,用于显示由所述解析单元305解析的信息列表。
在本实施例中,将所述信息列表放置到一个预先设定的显示区域中,通过显示该显示区域来显示所述信息列表。
以上装置的具体实现方法可以参见如图2所示的步骤201~207所述,此处不再赘述。
本发明实施例提供的获取信息的装置,由于是根据用户输入的信息从服务器端获取与所述用户输入信息相关的信息集合,从所述信息集合中选取用户所需要的信息,使用户在仅输入一部分字母或汉字的情况下,获取与该字母或汉字相关的所有关键词,供用户进行选择。解决了现有技术中,用户必须输入一个完整的关键词,才能获取对应路线的问题。
本发明实施例提供的技术方案可以应用在信息的智能提示等技术领域中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一计算机可读存储介质中,如ROM/RAM、磁碟或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。