一个jsp页面中有一个下拉列表“令号”,还有两个文本框,“用户名称”和“产品名称”,我现在是想通过选令号中的某一个值,然后直接从数据库中提出相关的用户名称和产品名称,并写到相应文本框里。求高人指点,最好带原代码。

解决方案 »

  1.   

    这个比较简单,1L 的  利用AJAX异步 取数据库数据  给你的文本框赋值就行了  要源码  就QQ我
      

  2.   

    使用DWR完全可以实现你的需求,具体参考:http://wl-ldy.iteye.com/admin/blogs/1038633
      

  3.   

    给下拉框 绑定个onchange事件  在事件里ajax请求后台并将返回值 写入文本框
      

  4.   

    新手,根本就没用过ajax,看源码还可以分析下,你这么说原理我明白,具体怎么用我没头绪啊
      

  5.   

    给你个网址吧,你自己看看,很容易就懂了
    http://www.ibm.com/developerworks/cn/java/j-ajax1/
      

  6.   

    用jquery吧:function buildAllArticle(pid){
       $.ajax({
               type:"post",
               url:"/getProduct.action",
               data:"pid="+pid,
               dataType:"json",
               success:function(data){
                   $("#txt_productName").val(data['name']);
                     $("#txt_productPrice").val(data['price']);
               }
           
              );
    } 在action中或者servlet将获得到的产品对象转成json类型就可以了:
    如:  JSONArray jsonProduct = JSONArray.fromObject(product);
      out.print(jsonProduct );希望对lz有用!
      

  7.   

    不用json传参可能没有那么麻烦
    lz,你上网查下jquery如何异步请求就有一大堆拉
      

  8.   

    呜呜,感谢各位好心人的帮助啊,可惜俺还是看不明白,我用的是tomcat+jsp。不知道各位说的servlet和tomcat是一回事吗?
      

  9.   

    也可以的
    或者用dwr,dwr是直接跟servlet交互异步处理的
      

  10.   

    8楼那里差不多啦,传进去的pid就可以是你选中的令号的值function buildAllArticle(pid){
      $.ajax({
      type:"post",
      url:"/getProduct.action",//处理程序,你可以改成/xxx.jsp,如果是在xxx.jsp里作处理(获取传过来的令号值,连接数据库,查询数据,数据封装成json形式输出等。。)
      data:"pid="+pid,//传值
      dataType:"json",
      success:function(data){
      $("#txt_productName").val(data['name']);
      $("#txt_productPrice").val(data['price']);
      }
        
      );
    }
      

  11.   

    能不能帮俺把xxx.jsp这个处理页面代码也简单讲述下,比如说怎么接收pid,怎么定义json,怎么返回那两个值啊
      

  12.   


    XXX.JSP里面 ,String type = request.getParameter("XX");//获取传递过来的值,xx就是8楼data里的pid(就是要跟data的一致)接收完了就是去数据库查咯。。查出来用户名(冯小刚)和产品名称(不见不散),
    拼装:String json = "{\"userName\":\"冯小刚\",\"productName\":\"不见不散\"}";
    返回:out.print(json);在ajax函数那里,就是8楼的
    success:function(data){  
      $("#XXXX").val(data['userName']);//为用户名赋值
      $("#XXXXXX").val(data['productName']);//为产品赋值,各自的XXXX就是相应的文本框的id
      }用jquery,要先引入它的js;拼接json那里,简单的可以自己拼,不想自己拼就像8楼那里用JSONObject,要另下载它的lib包大概就是这样
      

  13.   

    function buildAllArticle(pid)这个函数必须在参数?我是线下拉列表的onchang事件里写的,怎么去当前下拉列表的值啊?
      

  14.   

    <script src="jquery-1.4.js">
    function buildAllArticle(pid){
    //pid = document.getElementById("xmlh").value;
      $.ajax({
      type:"post",
      url:"/cxlh.jsp",//处理程序,你可以改成/xxx.jsp,如果是在xxx.jsp里作处理(获取传过来的令号值,连接数据库,查询数据,数据封装成json形式输出等。。)
      data:"pid="+$("#xmlh").val(),//传值
      dataType:"json",
      error: function(data){
            alert('Error loading XML document');
        },
      success:function(data){
      $("#xmmc").val(data['name']);
      $("#yh").val(data['price']);
      }
      }  
      );
    }</script>
    cxlh.jsp内容<%@ page language="java" contentType="text/html;charset=gb2312" %>
    <%request.setCharacterEncoding("GB2312");response.setCharacterEncoding("GB2312");
    String yhmc="";
    String xmmc="";
    String text=request.getParameter("pid");
    String sql="select * from GONGYDMUSER.C0_LHDM where lh_dm='160424     '";
    ResultSet rs1=stmt.executeQuery(sql); 
       while(rs1.next())
            {
              yhmc=rs1.getString("lh_yhmc") ;
      xmmc=rs1.getString("lh_gcmc") ;
      String json = "{\"name\":"+xmmc+",\"price\":"+yhmc"}";
            out.print(json);     
            }
    rs1.close();
    %>结果也去不到值啊,晕死了,折磨我3天了
    麻烦哪位帮忙指点下啊
      

  15.   

    方便的话可发到俺邮箱[email protected],我帮你看看?
      

  16.   

    用ajax或者dwr在后台查询之后转换成json格式,然后返回在页面上处理