[Web] 최종프로젝트(6) 프론트단 검색창 구현

hyewon jeong·2023년 2월 21일
0

web

목록 보기
8/24

개발 진행에 따른 기록 작성(★★★★★)

1. 엔티티 재 설계

1. 어떠한 이유로 해당 기능을 사용하였는지

제목 및 내용 검색시 해당 글 조회 가능 하도록 함

2. 해당 기능의 코드는 어떠한 로직을 가지고 있는지

contactPageIndex-inquiry.html

function inquirySearch(){ 
var keywords = $('#keywordInput').val();
localStorage.setItem('searching',keywords) //로컬스토리지에 키워드 저장 
console.log(keywords)
window.location = './contactPageMove-inquiry.html?1'
}

※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지

contactPageIndex-inquiry.html

//------------------------------- 검색창조회 -------------------------------------------------
$(document).ready(function() {
var keywords = localStorage.getItem('searching')//로컬스토리지에서 가져오기 
    console.log("keyword : "+keywords) 

    if(keywords===null){
        keywords = ""
    }
    var para = document.location.href.split("?");
    console.log("검색창조회시 url에서 pathvariable값 : "+para[1]) //현재페이지 url에서 pathvariable값 가져오기 
    var settings = { 
    "url": "http://localhost:8080/api/contact/inquiries/search?keyword="+keywords+"&page="+para[1],
    "method": "GET",
    "timeout": 0
    };

    $.ajax(settings)
    .done(function (response) {
        $('#inquiryList').empty()
        $('#inquiryPaging').empty()
        
        console.log("검색리스트"+response.data);
        let rows = response.data;
        
        for (let i = 0; i < rows.length; i++) {
            let inquiryId = rows[i]['id']
            let number = inquiryId
            let title = rows[i]['title']
            let createdDate = rows[i]['createdDate']


            let temp_html = ` <tr>
                <td>${number}</td>
                <td><a href ="contactDe-inquiry.html?${inquiryId}">${title}</td>
                <th>${createdDate}</th> 
                </tr>`
                

            $('#inquiryList').append(temp_html)
        }   

        //----------  페이징 처리 -----------------------
        let page = response.page
                let totalCount = response.totalCount
                let countPage = response.countPage
                let startPage = ((page - 1) / 10) * 10 + 1;
                let endPage = startPage + countPage - 1;
                let totalPage = response.totalPage;
                if(totalPage < page){
                        page = totalPage;
                        }
                        if(endPage>totalPage){
                        endPage = totalPage
                        }


                var param = document.location.href.split("?");
                console.log("현재페이지 : "+param[1])
                //이전페이지
                if (page > 1) {
                    let temp_html = `<a href="contactPageMove-inquiry.html?${page - 1}">pre</a>`
                    $('#inquiryPaging').append(temp_html);
                }
                //한 화면에 보여지는 페이지 수만큼 반복 하여 번호로 나타냄
                for (let i = startPage; i<=endPage; i++) {
                    let number = i
                    let temp_html = `<a href="contactPageMove-inquiry.html?${number}">${number}</a>`
                    $('#inquiryPaging').append(temp_html);
                }
                //다음페이지 page
                if (page < totalPage) {
                    let temp_html = `<a href="contactPageMove-inquiry.html?${page + 1}">next</a>`

                    $('#inquiryPaging').append(temp_html);
                }
    });
})
        
//------------------------페이지 처리 끝 -----------------------
//-----------검색창 끝 --------------------------------------
//------------현 페이지 검색 버튼 클릭시 검색함수 -----------------
function inquirySearch(){ 
var keywords = $('#keywordInput').val();
$('#inquiryList').empty()
$('#inquiryPaging').empty()
localStorage.setItem('searching',keywords) //로컬스토리지에 키워드 저장 
console.log(keywords)
window.location = './contactPageMove-inquiry.html?1'
}
//--------------------------------------------------------------
</script>

3. 코드를 작성하며 발견된 버그오류는 어떠한게 있었는지 그리고 어떻게 해결하였는지.

페이징 처리로 인해 html을 이동해야 해서 입력한 키워드값을 가져오기 위해 로컬스토리지에 저장하여 값을 꺼내와 보여준다.

profile
개발자꿈나무

0개의 댓글

관련 채용 정보