2012-03-04 2 views
0

Я пытаюсь выбрать данные из выпадающего списка и получить & отображать значения, соответствующие ему, в текстовые поля .. данные, которые будут отображаться в Textboxes берутся из базы данных (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() в определенных местах, чтобы увидеть, где могут возникнуть проблемы.