본문 바로가기
공부/Trouble Shooting

자바 스크립트 select에서 선택한 값 서버로 보내기

by son_i 2023. 9. 11.
728x90

<select> 태그에 id 값으로 주어진 값으로 선택한 option 값이 넘어올 거임

뽑아서 쓰려면 document.getElementById('bookmarkGroup'); 으로 내가 지정한 아이디에 있는 정보를 가져오고

group.options[group.selectedIndex].value를 통해 선택한 option에 대한 value값을 result에 넣어줌.

 

아래 getParameterByName(name) 함수는 정규식으로 이 앞단 근처 wifi 정보보기에서 와이파이 관리번호를 가지고 이 wifi-detail로 넘어온 거임. (index.jsp에서 manageNo를 가지고 wifi-detail로 넘어옴. 관리번호를 통해 해당 wifi 정보를 db에서 찾고 상세정보보기 화면에 뿌려줌) 

여기서 북마크 추가하기로 와이파이 명도 넘겨줄 필요가 있기 떄문에 index.jsp에서 넘어온 manageNo를 받기 위해 getParameterByname(name) 함수 사용. 이 함수 내에 사용된 location.search 는 url물음표 뒤에 있는 파라미터를 가져올 수 있음. 여기서는 ?manageNo=어쩌구가 넘어올 거임 여기서 값만을 파싱해 서버로 보내준 것 !

<select id="bookmarkGroup">
			<option>북마크 그룹 이름 선택</option>
			<%
			for(BookMarkGroup b : bookmark) {
			%>
			<option value="<%=b.getBookmarkName() %>"><%=b.getBookmarkName() %> </option>
			<% } %>
	</select>
	<button onclick="bookmarkadd_()">북마크 추가하기</button>
	<script>
		function bookmarkadd_() {
			const group = document.getElementById('bookmarkGroup');
			const result = group.options[group.selectedIndex].value;
			location.href="/bookmark/bookmarkListadd?bookmarkGroup="+result+"&manageNo="+getParameterByName("manageNo");
		}
		function getParameterByName(name) {
			  name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
			  var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
			  results = regex.exec(location.search);
			  return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
			}
	</script>

참조

 

https://velog.io/@jyyoun1022/JS-SELECT%ED%83%9C%EA%B7%B8%EC%97%90%EC%84%9C-%EC%84%A0%ED%83%9D%EB%90%9C-option-%EA%B0%92-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

 

[JS] SELECT태그에서 선택된 option 값 가져오기

자바스크립트에서 태그의 값을 자주 사용합니다.select,input 등등...이처럼 select 태그에서 선택된 option의 value를 가져오는 방법입니다.실무에서 많이 사용하므로 꼭 많이 연습해봅니다.document.getEle

velog.io

https://velog.io/@jyyoun1022/JS-SELECT%ED%83%9C%EA%B7%B8%EC%97%90%EC%84%9C-%EC%84https://velog.io/@jyyoun1022/JS-SELECT%ED%83%9C%EA%B7%B8%EC%97%90%EC%84%9C-%EC%84%A0%ED%83%9D%EB%90%9C-option-%EA%B0%92-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0%A0%ED%83%9D%EB%90%9C-option-%EA%B0%92-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

 

728x90