먹고살자
1k
2021-08-24 22:04:18 작성 2021-08-24 22:11:12 수정됨
2
126

select 값을 같은 페이지에 불러오기


원래 만들어야되는건

국가 selectbox 에서 한국,미국,영국 을 선택하면  다음 select 박스에  해당하는 국가의 도시가 표시되어 나와야 하는데


한페이지에서 진행이 안되고 다른페이지로 form 정보를 전달하고  다른페이지의 select 박스에 표기가 됩니다.  같은 페이지에 한번에 다 나오게 할 수 있는 방법이 있을까요?


이렇게 만들었구요  go_001.jsp

<%
	String sql7 = "SELECT country  FROM country GROUP BY country "; 
	ps7 = conn.prepareStatement(sql7);
	rs7 = ps7.executeQuery();	
%>
<script>
	function change(){
	  var form = document.x;
	  form.submit();
	   }
</script>
</head>
<body>
거주지1  <br/>
	<form name="x" action="go_002.jsp" method ="post" >
	<select  onchange="change(this)" name="country">	 
            <% while(rs7.next()){ %>
	      <option value="<%= rs7.getString("country")%>"><%= rs7.getString("country")%></option>		
<%}%>
	</select>	
	</form>


이동해서 나오는 페이지  go_002.jsp

<%
	String country = request.getParameter("country");
	
	String sql1 = "SELECT city  FROM city where country='"+country+"' GROUP BY city "; 
	ps1 = conn.prepareStatement(sql1);
	rs1 = ps1.executeQuery();
%>
</head>
<body>
거주지 찾기2<br/>
	도시:
	<select>		
	<% while(rs1.next()){ %>
		<option value ="<%= rs1.getString("city")%>"><%= rs1.getString("city")%></option>		
	<%}%>
	</select>	

이 002.jsp에 있는 selectbox 가 첫페이지에 같이 나오게 하는 방법을 알 수 있을까요

0
  • 답변 2

  • 엡실론
    2k
    2021-08-25 00:49:47

    ajax에 대해서 찾아보세요.

  • 까꿍
    885
    2021-08-25 10:16:32

    SELECT 1 한국 선택시

    SELECT 2 서울, 부산, 대구, 대전 등을 선택하도록 변경


    SELECT 1 일본 선택시

    SELECT 2 도쿄, 오사카, 후쿠시마 등을 선택하도록 변경


    위 케이스의 경우 두 가지 방법 중 알맞는 방법을 찾으시면 됩니다.

    첫 번째, 웹 페이지를 불러올 때 SELECT 1 에 대한 모든 정보와 SELECT 2 에 대한 모든 정보를 미리 DB에서 조회하여 웹 페이지로 던져줍니다. 이럴 경우 SELECT 1 을 바꿀 때 마다 서버에 요청을 하지 않기 때문에 SELECT 1 을 자주 바꾸는 경우에 용이합니다. 다만, 이렇게하면 SELECT 2 를 조회하는 시간도 포함되기 때문에 웹 페이지를 로딩하는 입장에서는 다소 느릴 수 있습니다.


    두 번째, 웹 페이지를 불러올 때 SELECT 1 에 대한 정보만을 DB에서 조회하여 웹 페이지로 던져줍니다. 그리고, SELECT 1 을 변경할 때 마다 ajax 를 통하여 서버에 SELECT 2 정보를 요청합니다. 이렇게 할 경우 첫 번째 방법보다 웹 페이지를 빨리 띄울 수 있으며 기다리는 시간을 다소 절약할 수 있습니다. 하지만, 이렇게 할 경우 SELECT 1 을 자주 변경하게 된다면 그 만큼 REQUEST 와 RESPONSE 가 많아지게 되니 적당한 방법을 고려하시면 됩니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.