본문 바로가기
study/Ajax

[Ajax] 22. Ajax을 이용한 게시물검색2

by 금이패런츠 2022. 4. 27.
728x90
반응형
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--src/main/webapp/test0426/board2.jsp --%>
<%--
	jstl을 이용하여 db 연결하기
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<fmt:requestEncoding value="UTF-8" /> <%-- 파라미터 인코딩 --%>
<%--
	jstl 이용하여 db 연결
	dataSource : db에 연결해주는 Connection 객체
 --%>
<sql:setDataSource var="conn" driver="oracle.jdbc.driver.OracleDriver"
	url="jdbc:oracle:thin:@localhost:1521:xe"
	user="kic" password="1234" />
<%-- re 변수 : select 구문의 처리 결과 값 저장 --%>
<sql:query var="rs" dataSource="${conn}">
	select * from board where ${param.column} like ?
	<sql:param>%${param.find}%</sql:param> <%-- sql구문의 ?에 해당하는 파라미터 값 설정 --%>
</sql:query>
<table border="1" style="border-collapse: collapse;">
	<tr>
		<th>번호</th>
		<th>글쓴이</th>
		<th>제목</th>
		<th>내용</th>
		<th>등록일</th>
		<th>조회수</th>
	</tr>
		<%--
			rs.rows : 조회된 레코드들
			data : 조회된 레코드 한개
			data.num : 레코드에서 컬럼의 이름이 name인 값
	 	--%>
		<c:forEach var="data" items="${rs.rows}">
			<tr>
				<td>${data.num}</td>
				<td>${data.writer}</td>
				<td>${data.subject}</td>
				<td><c:out value="${data.content}" /></td>
				<td><fmt:formatDate value="${data.regdate}" pattern="yyyy-MM-dd HH:mm:ss E" /></td>
				<td>${data.readcnt}</td>
			</tr>
		</c:forEach>
</table>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ajax을 이용한 게시물 검색</title>
<link rel="stylesheet" href="main.css" >
<script type="text/javascript" src="../ajax/ajax.js"></script>
<script type="text/javascript">
   function loadBoard(f){
	   var params = 
		   "column=" + f.column.value + "&find=" + f.find.value;
	   sendRequest("board2.jsp",params, boardList,"POST"); //서버로 전송
   }
   function boardList() { //콜백함수
	   if(ajax.readyState == 4) {
		   if(ajax.status == 200) {
			   //responseText : 서버에서 전송해준 내용
			   list.innerHTML = ajax.responseText;
		   } else {
			   alert("서버 오류:" + ajax.status + "=" + ajax.statusText);
		   }
	   }
   }
</script>
</head>
<body>
<form name="f">
  <select name="column">
    <option value="writer">글쓴이</option>
    <option value="subject">제목</option>
    <option value="content">내용</option>
  </select>
  <input type="text" name="find">
  <input type="button" value="검색" onclick="loadBoard(this.form)">
</form>
<div id="list"></div>
</body>
</html>
728x90
반응형

'study > Ajax' 카테고리의 다른 글

[Ajax] 23. jquery를 이용한 Ajax연습  (0) 2022.04.27
[Ajax] 22. Ajax로 xml 예제1  (0) 2022.04.27
[Ajax] 22. Ajax로 xml, json 분석하기  (0) 2022.04.27
[Ajax] 22. Ajax을 이용한 게시물검색1  (0) 2022.04.27
[Ajax] 22. Ajax  (0) 2022.04.26