< %@ page c % gt;
<%@ page import = "java.sql.*" %>
<%
request.setCharacterEncoding("euc-kr");
%>
<%--사용자가 선택한 우편번호와 전체 주소를 처음 페이지에 넘겨준다.--%>
<SCRIPT language="JavaScript">
function dd(a){
alert(a);
}
function strData(fzip, fadd) {
alert(fzip);
alert(fadd);
opener.document.zipcode.zip.value = fzip;
opener.document.zipcode.addr1.value = fadd;
opener.document.zipcode.addr2.focus();
window.close();
}//deli값이 여기로 안넘어감.ㅜㅜ
</SCRIPT>
<HTML>
<HEAD>
<TITLE> Project 7_2 </TITLE>
</HEAD>
<BODY>
<FORM>
<CENTER>
<TABLE border="1">
<%
String fd
Class forName("com.mysql.jdbc.Driver");
try {
String url = "jdbc:mysql://localhost:3306/zip";
Connection c> Statement stmt = conn.createStatement();
// 우편번호 테이블 tblZipCode에서 검색어에 해당하는 '동'의 전체주소를 검색한다.
String strSQL = "SELECT * FROM zipcode where 읍면동 like '%" + fdong + "%'";
ResultSet rs = stmt.executeQuery(strSQL);
// 쿼리문으로 검색된 결과가 없을 경우 아래와 같은 문장을 출력한다.
if(!rs.next()) {
%>
<TR>
<TD align="center"><FONT size="2">찾는 주소가 없습니다.</FONT></TD>
</TR>
<%
} else {
%>
<TR>
<TD align="center" colspan="3">
우편번호 검색 완료</TD>
</TR>
<TR>
<TD align="center"> 우편번호 </TD>
<TD align="center"> 주 소 </TD>
<TD align="center"> 선 택 </TD>
</TR>
<%
}
while(rs.next()) {
String code = rs.getString("우편번호");
String sido = rs.getString("시도");
String gungu = rs.getString("시군구");
String d> String bungi = rs.getString("번지");
String deli = rs.getString("다량배달처");//문제의 다량배달처
String a=deli.toString();
String b=code.toString();
// 전체주소에서 null문자를 제거해 준다.
String address = sido+" "+gungu+" "+dong+" "+bungi+" "+deli;
address = address.replaceAll("NULL", " ");
%>
<TR>
<TD align="center"><FONT size=2><%= code%></FONT></TD>
<TD><FONT size=2> <%= address%></FONT></TD>
<TD align="center"><INPUT type=button value="선택" 온클릭(onclick) ="strData('<%=sido%>','<%=deli%>' )">
//다른 값들은 넘어가는데 deli만 넣으면 안넘어감
</TD>
</TR>
<%
System.out.println(deli);
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
out.println("MySql 데이터베이스 univdb의 student에 삽입 또는 조회에 문제가 있습니다.<hr>");
System.out.println(e.toString());
e.printStackTrace(); }
%>
</TABLE>
</FORM><P>
<TABLE>
<TR>
<TD><a href="Project7_2_2.jsp">[다시 검색하기]</a></TD>
<TD><a href=[removed]close()>[닫 기]</a></TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
이게 하루종일 골머리를 썩이는 소스인데, 저기 빨간색 친 부분이 내가 묻고 싶은 부분들이야.
deli값이 저기 사진에 보이는 "뉴서울아파트","삼부아파트"이런 값들인데 스크립트릿<% %>여기서는 잘 표현되는데,
onclick을 통해 function으로 넘길때 deli값만 전달이 안돼ㅠㅠ
온클릭(onclick) ="strData('<%=sido%>','<%=deli%>' )">에서 <%=%>문에다가 다른값 넣으면 alert문도 제대로 뜨고 값도 제대로 전달되는데
deli만 이지랄로 사람 엿먹임요...
이거 해결방법점 제시해줘여 ㅠㅠ
EL한번 써보시지
el이 뭐에여??
근데 온클릭은 왜 한글로 써놓은거?
jsp책 있으면 표현언어(EL)있을건데 이건 그런문제는 아닌 것 같고 뭔가 오타난 것 같다. 콘솔에 deil값 출력하면 뭐나옴?
쓰려니깐 계속 사라져서 대책으로 한글로쓴거;
내글 위에 바로 사진에 나와있는데로, 콘솔창에 출력했을때 제대로뜸. 근데 function 으로 전달할때는 안됨
그럼 deli를 null로 초기화한 후에 deli=rs.getString("다량배달처"); 해보실레요
해봤는데, 기존처럼 콘솔창에는 값이 뜨는데 전달이 안됨;
다른 값도 안된다그러면 모르겠는데 다른값은 되고 , 콘솔출력도되는데 값이 안넘어간다는게 이상한데 혹시 rs.close();stmt.close();conn.close(); 이걸 finally 블록에 넣어봐봐,
finally{ if(stmt!=null)stmt.close(); if(con!=null)con.close(); } 이렇게 넣어줘도 안나옴...
다른 값도 안된다하면 찾아보겠는데 다른값이 되면 안될수가 없음, 값이 없으면 널값이라도 전달되니까, 그냥 마지막으로 type="button"으로 쌍따옴표 넣어보고, input태그 닫을때 />로 닫아보시거나, 브라우저를 다른 걸로 바꿔보시거나 톰캣을 재실행해보시거나 alert()밑의 코드를 잠깐 지워보시거나
소스보기로 확인했는데 다른 값들은 정상적으로 한줄로 표시되는데 deli값만 onClick부분에서 ('삼부아파트//// '); 이렇게 ('삼부아파트랑 ////사이의 ');가 엔터친거마냥 강제 줄바뀜이 있었어. 이게 문제일거 같은데 replaceAll로 어떻게 엔터된거 없앨수 잇음?
와 해결했다!!!!! 어째서 엔터값이 들어가잇는지 모르겟지만 deil.replaceAll("\r","");하니깐 정상적으로 출력되네!