먹고살자
1k
2021-08-24 14:14:05
8
220

select값을 db에 저장하는 방법질문있습니다.


셀렉트 박스로

 한국,미국 중 선택하면 해당국가의 도시가 선택되게 한후에 이걸 db에 저장하려고 하는데요


이런식으로요 

					<select onchange=" Change(this)">
						<option>국가</option>
						<option value="a">한국</option>
						<option value="b">미국</option>						
					</select>

					<select id="city">
						<option>도시를 선택하세요</option>
					</select>


 아래는 자바스크립트 함수구요

<script type="text/javascript">

	function  Change(e) {
	var city_a = ["서울", "부산", "강원" ];
	var city_b = ["뉴욕", "LA", "텍사스"];	
	
	var target = document.getElementById("city");

	if(e.value == "a") var d = city_a;
	else if(e.value == "b") var d = city_b;
	else if(e.value == "c") var d = city_c;

	target.options.length = 0;

	for (x in d) {
		var opt = document.createElement("option");
		opt.value = d[x];
		opt.innerHTML = d[x];
		target.appendChild(opt);
		}	
	}
</script>


db 테이블에

country 라는 컬럼은 만들어 놨는데   한 컬럼에  국가,도식라는 두가지 데이터가 들어가는건 안좋으니까

다른 방법을 써야하는데  여기저기 뒤져보니 groupby를 활용해서 하면된다는데 조금더 자세하게 설명을 받을수 있을까요.


0
  • 답변 8

  • 개봉박살
    478
    2021-08-24 14:20:50

    DB에서 select와 html에서 select는 다른겁니다.


    html에서 자바스크립트로 백엔드에 데이터를 전달하는 방법과

    백엔드에서 받은 데이터를 어떻게 DB에 저장하는지를 공부하셔야 합니다.

  • 먹고살자
    1k
    2021-08-24 14:26:35

    답급 감사합니다.


    1개의 값일경우 폼에서 전달받은  정보를 jdbc로   pstmt.executeUpdate(); 이런식으로 입력하잖아요


    그런데  저렇게  select 다중데이터  국가명,도시명  두개를 받을경우에


    어떻게 db에 입력해야하는지  groupby 쿼리활용하면 될거 라는데 잘 해결이 안되네요. 

      메인테이블에 country 라는 컬럼이 있는데 여기에  두개말고  다른 하나의 테이블을 만들어서 활용해야 할것 같은데 방법이 있을까요?

     


  • web.
    914
    2021-08-24 14:46:43

    group by 는 

    데이터를 조회(SELECT) 할 때 사용하는 구문입니다.


    지금은  메인테이블에 country 컬럼 외 city 라는 컬럼이 추가로 필요해 보이네요. 

  • 먹고살자
    1k
    2021-08-24 14:56:13 작성 2021-08-24 14:56:59 수정됨

    web

    답변 감사합니다.

    머리가 혼란스러워서 질문이 난해하게 됬네요.  


    제가 만들고있는 게시판 회원정보 입력항목중에

    국가라는 항목이 있는데 

    이항목은 select로 만들어져있고  국가를 선택하면  다음엔 해당국가에 속해있는 도시가 나오게 하고

    이렇게 선택후  form 전송을 클릭하면

    도시,국가 라는  데이터가 일종의 배열상태인데  db에 어떻게 저장해야하는지 

    반대로 불러올때 groupBy를 활용하라고 하는데 어떻게 활용해야 할지 어렵네요. 

     


     



  • 징징이희수
    554
    2021-08-24 15:06:15

    web. 님 말씀대로 국가 이외에도 도시라는 속성을 테이블에 추가해야 할 것 같아보여요.


    그리고 form 전송을 클릭하면 도시, 국가 라는 데이터가 일종의 배열 상태라고 하셨는데 


    컨트롤러단에서 city가 어떻게 넘어오는지도 확인해보셔야 할 것 같아요. 프론트단에선 배열일지 몰라도


    한국 > 서울을 선택하고 전송을 눌렀을 때 city 의 value 값은 '한국' 이렇게만 나올테니까요.


    그럼 insert into table(country, city) values(country, city) 하면 되지 않을까 싶습니다.

  • 먹고살자
    1k
    2021-08-24 15:11:17

    징징이희수 

    친절한 답변 정말 감사합니다. 한번 머리속에서 정리해보고 시도해보겠습니다. 감사합니다. 좋은하루되세요

  • web.
    914
    2021-08-24 15:11:30
                                            <select name="country" onchange=" Change(this)">
    						<option>국가</option>
    						<option value="a">한국</option>
    						<option value="b">미국</option>						
    					</select>
    
    					<select id="city" name="city">
    						<option>도시를 선택하세요</option>
    					</select>


    위와같이 넘긴다는 가정하에 

    request.getParameter("country")

    request.getParameter("city")


    따로따로 값을 받아오시면 될 것 같습니다.

    vo를 사용하신다면 그에 맞는 필드를 추가 해주시면 되구요. 




  • 먹고살자
    1k
    2021-08-24 15:20:46

    web.

    너무 감사합니다.  좋은하루되세요. 

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