2012-03-04 37 views
0

我試圖從下拉列表中選擇數據並檢索&將與其對應的值顯示到文本框中。要顯示的數據文本框是從數據庫(MySQL數據庫)。該腳本在JSP完成這是採取如下:從下拉菜單中選擇與數據庫對應的數據到文本框中使用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> 

<% 
} %> 

問題是我無法從數據庫中檢索值。這兩個下拉值都不顯示。任何人都可以幫我找到代碼中的錯誤。這對我有很大的幫助。提前致謝。

回答

0

由於您在此處有很多移動部件,因此您需要慢慢瀏覽每個部件並確認數據是否正確。

我會從JavaScript開始,並使用alert()確認數據是從xmlHttp請求返回的。

然後,一步步走到下一個部分,做輸出和/或中斷,以確認數據顯示在每個部分。

我已經執行了類似的步驟,因爲您正在使用JSP和JavaScript以及數據庫,並且當我遇到了像現在一樣卡住的障礙時,我不可避免地必須慢慢且有條不紊地通過每個部分看看路上有什麼丟失。

我通常只是在特定的地方使用alert()和out.println()來查看問題可能出現的位置。

相關問題