공부/Trouble Shooting
자바 스크립트 select에서 선택한 값 서버로 보내기
son_i
2023. 9. 11. 23:37
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>
참조
728x90