从下拉列表 - 使用JSP将数据对应的数据从数据库显示到文本框中

时间:2012-03-04 12:45:38

标签: java mysql jsp netbeans-7

我试图从下拉列表中选择数据并检索&将与其对应的值显示到文本框中。要显示到文本框中的数据取自数据库(mysql数据库)。脚本在JSP中完成,如下所示:

issue_from.jsp

function showDataIssue(){ 
xmlHttp=GetXmlHttpObject()
var id=document.getElementById("part_no").value;
var url="issue_upd.jsp";// code for issue_upd.jsp is given down
url=url+"?part_no="+id;
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null);
}

这里part_no是键 - 其值在下拉列表中,在选择任何part_no值时,part_desc,serial_no,mr_no rr_no和po_no的相应值将显示在文本框中。 part_no,part_desc,serial_no,mr_no和rr_no字段位于一个名为mr_details的表中。 part_no,po_no字段位于一个名为po_details的表中。

issue_form.jsp

function stateChanged(){ 
if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
var showdata = xmlHttp.responseText; 
var strar = showdata.split(":");
  if(strar.length>1){
    var strname = strar[1];
    document.getElementById("mr_no").value= strar[1];
    document.getElementById("rr_no").value= strar[2];
    document.getElementById("serial_no").value= strar[3];
    document.getElementById("part_desc").value= strar[4];
    document.getElementById("po_no").value= strar[5];
     }
   } 
 }

在上面的代码中,我试图获取字段的值。 issue_upd.jsp的代码如下:

issue_upd.jsp

String pn = request.getParameter("part_no").toString();
System.out.println(pn);
String data ="";
try{
       Class.forName("com.mysql.jdbc.Driver");
       Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/");
       Statement st=con.createStatement();
       ResultSet rs=st.executeQuery("select mr_no,rr_no,serial_no,part_desc from  where         part_no='"+pn+"'");
       ResultSet rs1=st.executeQuery("select po_no from po_details where part_no='"+pn+"'");
while(rs.next())
{
 data = ":" + rs.getString("mr_no") + ": " + rs.getString("rr_no") + ": " +         rs.getString("serial_no")+ ": " + rs.getInt("part_desc")+ ": " + rs1.getInt("po_no");
}
out.println(data);
System.out.println(data);
}catch(Exception e) {
System.out.println(e);
}

对于下拉列表,我用Java编写了如下代码:

issue_form.java

public class issue_details {
public ResultSet get_part_no() {
ResultSet rs;       
try{
       Class.forName("com.mysql.jdbc.Driver");
       Connection con =DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb");
       Statement st=con.createStatement();
      rs=st.executeQuery("select part_no from mr_details");


}
catch(Exception e) {
System.out.println(e);
rs=null;
}
return rs;
}

下拉的JSP代码如下:

issue_form.jsp

<select id="part_no" name="part_no" onchange="showDataIssue();"/>

<%  issue_details p=new issue_details();
ResultSet res = p.get_part_no();
while(res.next())
{

 %>
 <option value="<%=res.getString("part_no") %>"><%=res.getString("part_no")%>
 <%=res.getString("part_no") %></option>

 <%
 } %>

问题是我无法从数据库中检索值。既不显示丢弃值。任何人都可以帮我找到代码中的错误。这对我很有帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于这里有很多移动部件,因此您需要缓慢地逐步完成每个部件并确认数据是否正确。

我将从JavaScript开始并使用alert()确认数据是从xmlHttp请求返回的。

然后,逐步进入下一部分并进行输出和/或中断以确认数据显示在每个部分中。

我已经使用JSP和JavaScript以及数据库执行了类似的步骤,当我遇到像你现在被困住的那个时,我不可避免地要慢慢地,有条不紊地通过每个部分来看看路上有什么东西迷失了。

我通常只在特定的地方使用alert()和out.println()来查看可能出现的问题。