전에는 카드의 내용 9개를 전부 html에 정적으로 삽입한 다음, 단순히 불러오는 방식으로 웹페이지를 구현하였는데, 카드를 추가한 후에 동적으로 카드가 생성되도록 만들기 위해 find.php의 코드를 수정해 보았다.
처음에는 아래의 사진과 같이 9개의 카드가 코딩되어 있는 것을 알 수 있다.
각각의 id에 맞춰서 미리 저장되어 있던 내용을 팝업으로 출력시키는 방식으로 코딩을 했는데, 이번에는 DB에 저장되어 있는 idx를 이용해서 하나의 div를 여러 개 자동으로 만들어주게끔 php 코드를 작성하였다.
간단하게 말하자면, DB와 연결 후 search 파라미터가 설정되지 않았을 경우 모든 카드를 SELECT문으로 가져오고, mysqli_fetch_array로 데이터를 하나씩 가져와서 html에 출력해 주는 것이다.
만약 search 파라미터가 설정된 경우에는 검색 쿼리를 반영하여 SQL문을 전송하기 때문에 원하는 단어(대소문자 구분 X)가 들어간 카드를 선택할 수 있다. (이거 때문에 굳이 검색 때문에 추가 php파일이 필요 없다는 것을 알게 되었다.)
다음과 같이 작성한 후, DB를 깨끗이 비우고 find_new.php 페이지에서 추가하면 하나하나씩 카드가 잘 출력되는 것을 볼 수 있다.
여기서 또 하나 문제점이 발생하였는데, 처음에 card-form이라는 class의 세팅의 display 옵션이 flex-wrap으로 되어 있어서 한줄당 한 카드만 있을 경우 자동으로 가운데 정렬이 되는 것이었다.
그래서 구글 검색으로 찾아보다가 알아낸 것이 "display: grid" 였다. grid는 다음 그림을 보면 어떤 느낌인지 알 수 있다.
따라서, find.php의 디자인을 책임지는 find_style.css의 card-form과 card-box class의 속성을 grid 식으로 변경해 주었다.
(하나 알아낸게 있는데, margin을 auto로 설정하면 자동으로 자신의 영역을 상위 태그의 가운데로 맞춰준다고 한다.)
이렇게 수정하고 나면, 위의 결과 화면과 같이 잘 정렬된 상태로 나오게 된다.
다음 개발의 목표는 카드를 누를 때 제목에 알맞은 내용을 팝업으로 띄우는 것으로 하겠다.
오늘은 여기까지.
'2020 Web Develop' 카테고리의 다른 글
웹개발 일지 13일차 (20.12.06) (0) | 2020.12.06 |
---|---|
웹개발 일지 11일차 (20.10.21) (0) | 2020.10.21 |
웹개발 일지 10일차 (20.07.12) (3) | 2020.07.12 |
웹개발 일지 9일차 (20.06.15) (0) | 2020.06.15 |
웹개발 일지 8일차 (20.05.22) (0) | 2020.05.24 |