JAVA
회원등록(jsp버전)
docc
2021. 7. 25. 00:23
1. 우편번호&주소, 아이디중복
JavaScript 사용 ( API 없이 간략하게 해보기 )
window.open(): 창하나를 연다. 이 때 열어준 창을 부모창, 열린 창을 자식창이라고 한다.
부모창에서 주소창으로 들어가고,
주소창(자식창)을 띄워 주소를 선택하면 부모창에 값이 가도록 해야한다.
이때 사용하는 속성이 opener // 열어준 사람
opener.부모창의메서드();
//이렇게 부모창에 접근가능하다.
https://postcode.map.daum.net/guide
Daum 우편번호 서비스
우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Daum 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다.
postcode.map.daum.net
다음 우편번호 API 를 이용해 우편번호 검사하면 된다.(나중에 따로해볼것)
>> 회원등록준비.jsp (부모창)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<form action="" method="post">
<h1>회원등록</h1>
<!--기초내용 -->
성명 <input type = "text" name = "name"><br>
우편번호 <input type = "text" name = "post" id="name" readonly="readonly"><input type="button" onclick="조회창을띄우다()" value="조회"><br>
주소 <input type = "text" name = "address" id="address" readonly="readonly"> <br>
상세주소 <input type = "text" name = "address" readonly="readonly"> <br>
아이디 <input type="text" name="id" id="id" readonly="readonly"> <input type="button" onclick="아이디중복검사창을띄우다()" value="조회">
</form>
</center>
</body>
</html>
<script>
function 조회하다(){
var 목록 = [{post:"1234",address:"서울시 구로구 대륭1차"},
{post:"1235",address:"서울시 구로구 대륭2차"},
{post:"1236",address:"서울시 구로구 대륭3차"}];
var addresslist = document.querySelector("#addresslist");
for(var i = 0; i < 목록.length; i++){
var li1 = document.createElement("li");
var text1 = document.createTextNode(목록[i].post);
var text2 = document.createTextNode(목록[i].address);
li1.appendChild(text1);
li1.appendChild(text2);
addresslist.appendChild(li1);
var ss = function(){
//this = 이 함수를 쓸 객체를 가리킴.
/* var li = this;
let 우편번호 = li.childNodes[0].nodeValue;
let 주소 = li.childNodes[1].nodeValue; */
let 우편번호 = this.childNodes[0].nodeValue;
let 주소 = this.childNodes[1].nodeValue;
alert(우편번호);
alert(주소);
//부모창
opener.주소를받다(우편번호,주소);
self.close();
};
li1.addEventListener("dblclick",ss);
}
}
</script>
<script>
function 아이디중복검사창을띄우다(){
window.open("아이디중복검사.jsp","","width=450,height=300");
}
function 아이디를받다(id){
let txtID = document.querySelector("#id");
txtID.value = id;
}
</script>
>> 우편번호조회.jsp (자식창)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>우편 번호 조회</title>
</head>
<body>
<h1>우편 번호 조회</h1>
주소 <input type="text" name="adress"'/> <button onclick="주소찾다()">조회</button><br>
<!-- 찾은 주소들 출력 -->
<ul id="addresslist"></ul>
</body>
</html>
<script>
function 주소찾다(){
var 찾은주소들=[{post:"1234", address:"서울시 구로구 대륭1차"},
{post:"1235", address:"서울시 구로구 대륭2차"},
{post:"1236", address:"서울시 구로구 대륭3차"}];
var addresslist = document.querySelector("#addresslist");
for(var c = 0; c < 찾은주소들.length; c++){
var li1 = document.createElement("li");
var 주소 = 찾은주소들[c];
var text1= document.createTextNode(주소.post);
li1.appendChild(text1);
var text2= document.createTextNode(주소.address);
li1.appendChild(text2);
addresslist.appendChild(li1);
var ss =function(){
var li = this;
var textNode1 = li.childNodes[0];
var textNode2 = li.childNodes[1];
let 우편번호 = textNode1.nodeValue;
let 주소 = textNode2.nodeValue;
alert(textNode1.nodeValue);
alert(textNode2.nodeValue);
//부모창
opener.주소를받다(우편번호,주소);
self.close();
};
li1.addEventListener("dblclick",ss);
}
}
</script>
>>아이디중복검사.jsp(자식창)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="membermanage.*"%>
<%
// 맨처음은 당연히 null, 사용자가 입력시 다시 이 페이지로 데이터들이 submit되어 action가능하게됨
// 그러면 String 아이디에 값이 들어감
// 하지만 submit 해버렸기 때문에 아이디에 값이 사라져버린다.(request만 받는다.)
String 아이디 = request.getParameter("id");
boolean 사용가능여부 = false;
String 메세지 = "";
if(아이디 == "") {
메세지 = "아이디를 입력하세요.";
}else if(아이디 != null){
회원DAO dao = new 회원DAO();
사용가능여부 = dao.아이디가사용가능한가(아이디);
// 아이디 중복검사(일단 가상으로)
메세지 = (사용가능여부)?"사용가능한 ID입니다.":"이미 사용 중인 ID입니다.";
}
//
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>아이디 중복 검사</title>
</head>
<body>
<form action="아이디중복검사.jsp" method="post">
아이디 <input type="text" name="id" id="id" value="<%=(아이디!=null)?아이디:"" %>"/> <input type="submit" value="검사">
</form>
<%-- 결과 출력 --%>
<%= 메세지 %>
<%if(사용가능여부){ %>
<br> <button onclick="id를보내다()">사용</button>
<%} %>
<button onclick ="self.close()">취소</button>
</body>
</html>
<script>
function id를보내다(){
let txtId = document.querySelector("#id");
let id = txtId.value;
alert(id);
opener.아이디를받다(id);
close();
}
</script>