0

我有以下前端代码,我需要获取 textfield(id=uid) 值并将其解析为 servlet 并基于该值填充其他两个文本字段(这是一个搜索函数),但以下代码仅检索值,无法发送“uid”。我怎么能那样做?请帮我。

    <script type="text/javascript">  
    $(document).ready(function(){   
            $('#getData').click(function(){ 

                $.ajax({  
                    url:'JsonServlet',  
                    type:'post', 
                    dataType: 'json',  
                    success: function(data) {  

                        $('#uname').val(data.uname);  
                        $('#uadd').val(data.uadd);
                    }  
                });  
            });  
    });  
</script>  

</head>  
<body>  

    UserID:<input name="userid" type="text" id="uid"/><br/>  
    Name:<input type="text" id="uname"/> 
    Address:<input type="text" id="uadd"/> 

    <input type="button" id="getData" value="Get Data"/>  

我的 servlet 代码如下所示

response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String userid = request.getParameter("userid");
            ResultSet rs = db.selectQuery("select * from tbl_user where userid = '"+userid+"'");
            JSONObject json = new JSONObject();
            while (rs.next()) {
                json.put("uname", rs.getString("username"));
                json.put("uadd", rs.getString("useraddress"));

            }
            //json.put("uname", "user1");
               // json.put("uadd", "address1");
            out.print(json);

        } catch (Exception e) {
            e.printStackTrace();
        } 
4

1 回答 1

1

你的ajax应该是这样的..

             $.ajax({  
                    url:'JsonServlet?userid='+document.getElementById("uid").value,  
                    type:'post', 
                    dataType: 'json',  
                    success: function(data) {  

                        $('#uname').val(data.uname);  
                        $('#uadd').val(data.uadd);
                    }  
                });  
            });  

你应该可以使用String userid = request.getParameter("userid");

于 2013-11-13T14:32:39.610 回答