问题描述
我现在在开发一套B/S系统,其中有一个功能模块是添加用户补充信息。在用户补充信息的添加界面,我想实现这样一个功能:1、系统的后台数据库里,存在一张存有用户基本信息(包括用户身份证号、姓名、电话号码等信息)的数据表2、用户的补充信息添加界面分为两个部分,一个部分是输入一部分用户的基本信息(例如用户的身份证号、姓名、电话号码等),另一部分是输入用户的补充信息(例如用户的信用记录等)3、我希望实现这样一个功能:当我在用户信息添加界面中输入用户的关键信息时(例如用户的身份证号),系统检索一次数据库中的用户基本信息表,如果表中存有该用户的信息,那么添加界面的其他输入框(例如用户的姓名、用户的年龄、用户的电话号码等)当中,自动就出现这个用户的对应信息,如果基本表中没有该用户的信息,那么就手动输入该用户的基本信息。4、在这个添加界面当中,用户的基本信息和用户的补充信息一起通过SUBMIT按钮,发送到后台的数据处理页面。我设想了很多种方案,包括利用文本输入框的onchange事件来刷新页面、将用户的基本信息和用户补充信息分别放在一个页面的不同FORM表单中,但是都不行,请问各位大拿有什么好的办法么?
解决方案
解决方案二:
ajax快速解决
解决方案三:
为什么要两个FOrm呢??
解决方案四:
如果楼主使用的是普通的Html标签控件,监听此文本框的onchange若失效的话,就监听onkeydown事件,当然,也不要每次都通过ajax异步查询用户信息,使用正则来对用户输入的身份证信息做简单校验,若身份证合法,则调用ajax异步查询用户信息,传回的结果再通过dom操作填充到相对应的控件中,当然不一定非得要dom操作,若使用了某些javascript的MVVM框架也是可以的。关键点在于前面几句话。
解决方案五:
引用3楼zhanxueguang的回复:
如果楼主使用的是普通的Html标签控件,监听此文本框的onchange若失效的话,就监听onkeydown事件,当然,也不要每次都通过ajax异步查询用户信息,使用正则来对用户输入的身份证信息做简单校验,若身份证合法,则调用ajax异步查询用户信息,传回的结果再通过dom操作填充到相对应的控件中,当然不一定非得要dom操作,若使用了某些javascript的MVVM框架也是可以的。关键点在于前面几句话。
并不是onchange事件失效,而是我发现要想实现我这个效果,光用普通的HTML标签和onchange事件是不够的,例如我在信息录入界面输入某个员工的身份证号后,鼠标移出文本框,触发了onchange事件,然后onchange事件执行submit方法,将身份证号送到后台,后台代码调用数据库,检索出这个员工的其他信息,并赋给session,然后信息录入界面刷新,将session中存储的数据赋给信息录入界面上的其他文本框,那么现在的问题来了:如果我在onchange事件中已经执行了submit方法,并且这个submit方法的目标后台页面的功能是检索出这个员工的其他信息,并赋给session,那么我如何才能实现将信息录入界面的其他录入信息(包括session中存储的信息数据)submit到后台的专门负责将数据录入到数据库中的后台处理页面呢?这套系统是个很老的系统,用的是老式的ASP+IIS+MSSQLSERVER,并且我对ajax不是很熟悉,所以我想找一种利用以前的技术就能实现上述功能的方案。
解决方案六:
也就是说你想通过把身份号码以表单的方式提交给服务器然后检索出其它信息然后保存至session,然后再填充至相应表单元素中是吧。虽然这种方法不是很人性化,毕竟要刷新页面,但也不是不能做,只要在页面加载的时候判断session中是否存在相应的附带信息,若有,则填充信息
解决方案七:
这样的功能需要JavaScript来完成<inputid="text1"/><inputid="text2"/>
当第一个文本框的值发生改变时,其他文本框赋值就好了关键点:第一个文本框onchange事件、获取其他输入框的值并赋值
解决方案八:
引用5楼zhanxueguang的回复:
也就是说你想通过把身份号码以表单的方式提交给服务器然后检索出其它信息然后保存至session,然后再填充至相应表单元素中是吧。虽然这种方法不是很人性化,毕竟要刷新页面,但也不是不能做,只要在页面加载的时候判断session中是否存在相应的附带信息,若有,则填充信息
你这种思路我也试过,但是到了把数据submit到后台的数据录入页面这一步卡住了,因为前台的数据录入界面刷新和把数据submit到后台数据库录入界面是相矛盾的
解决方案九:
引用6楼pengqian098的回复:
这样的功能需要JavaScript来完成<inputid="text1"/><inputid="text2"/>当第一个文本框的值发生改变时,其他文本框赋值就好了关键点:第一个文本框onchange事件、获取其他输入框的值并赋值
不行,获取其他输入框的值的前提是必须进行数据库检索,js是无法完成这个工作的。
解决方案十:
那么楼主还是去了解一下ajax吧,不是很麻烦
解决方案十一:
引用8楼moondance的回复:
Quote: 引用6楼pengqian098的回复:
这样的功能需要JavaScript来完成<inputid="text1"/><inputid="text2"/>当第一个文本框的值发生改变时,其他文本框赋值就好了关键点:第一个文本框onchange事件、获取其他输入框的值并赋值
不行,获取其他输入框的值的前提是必须进行数据库检索,js是无法完成这个工作的。
js是可以去请求服务器信息的,不知道楼主是不是清楚xmlHttpRequest
解决方案十二:
引用8楼moondance的回复:
Quote: 引用6楼pengqian098的回复:
这样的功能需要JavaScript来完成<inputid="text1"/><inputid="text2"/>当第一个文本框的值发生改变时,其他文本框赋值就好了关键点:第一个文本框onchange事件、获取其他输入框的值并赋值
不行,获取其他输入框的值的前提是必须进行数据库检索,js是无法完成这个工作的。
客户端调用服务器上的方法使用ajaxhttp://www.cnblogs.com/mqingqing123/archive/2009/10/16/1584727.htmlhttp://www.cnblogs.com/henw/archive/2012/03/28/2420708.html