JavaScript를 이용하여 동적 테이블 만들기 (1)

2023. 2. 27. 18:57·Front end/JavaScript

오늘은 데이터베이스, 서버 없이 그냥 웹 상에만 존재하는 테이블을 만들어 보았다. 아직 서버와 데이터베이스 공부를 하지 않아 구축을 못했었는데 테이블을 만드는 과정에서 데이터베이스와 서버가 어떻게 움직이는지 조금은 알 수 있었다.

 

사실 원하는 행을 선택해 그 행만 삭제하는 기능을 넣고 싶었는데 insertRow()로 만들어진 행에 클래스를 주는 법을 모르겠어서 구현하지 못했다. 그런데 ChatGPT를 이용해 그 기능을 넣는 방법을 배웠고 조만간 응용해서 코드를 다시 짜던지 추가를 하던지 완벽하게 구현할 생각이다. 

 

아 그리고 창을 2개 만들어 부모창과 자식창의 데이터 교환을 배웠는데 개념을 응용하기가 생각보다 어려웠던 것 같다. 이 부분에서 생각보다 많은 시간이 걸렸었고, input 의 Date 타입에서 해당 년도만 추출하여 현재 년도와 비교해 나이를 구하는 과정도 생각처럼 쉽게 풀리진 않았었다. 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="css.css">
</head>
<body>

  <h1>
    회원정보
  </h1>
  <button onclick='openform()'>추가</button>

  <table id="graph" >
    <thead>
      <tr>
        <th>번호</th><th>이름</th><th>나이</th><th>성별</th>
      </tr>
    </thead>
    <tbody>
      <tr class="data" onclick="change()">
        <td>1</td><td>명재휘</td><td>24</td><td>남</td>
      </tr>
    </tbody>

  </table>
  
  <script>
    var no = 1;
    let openWin
    var i=1;

    
    // 자식 폼 열기
    function openform(){
      window.name = "parentForm";
      openWin = window.open("form.html", "Child", "width=400, height=300, left=350, top=150")
    }
    
    // 테이블에 내용추가 함수
    function add(){
      // 테이블 이름 정의 
      const table = document.getElementById('graph');
      const newRow = table.insertRow();

      // 테이블 각각 열 정의
      const newCell1 = newRow.insertCell(0);
      const newCell2 = newRow.insertCell(1);
      const newCell3 = newRow.insertCell(2);
      const newCell4 = newRow.insertCell(3);

      // 현재 년도 반환
      var dat = new Date()
      var Cyear = dat.getFullYear();
      var Byear = parseInt(openWin.document.getElementById("birth").value);

      // 성별 판단

      newCell1.innerText = no += 1
      newCell2.innerText = openWin.document.getElementById("fullname").value
      newCell3.innerText = Cyear - Byear + 1
      newCell4.innerText = openWin.document.querySelector('input[name="gender"]:checked').value

      var deleteBtn = document.createElement("button");
      deleteBtn.innerHTML = "Delete"

    }

    // 선택된 테이블 색 변경
    function change(){
      //var row = document.getSelection('tr')
      console.log("hi")
    }


  </script>
</body>

</html>

위 코드의 실행 화면이다. 

오른쪽 위에 있는 추가 버튼을 누르면 아래 화면이 나타나고 번호, 이름, 나이, 성별을 체크하여 행의 추가가 가능하다. 

아직 삭제기능은 머릿속으로만 구상하고 넣지 않았다. 지금은 해당 행에 마우스를 올리면 색이 변하기만 하는 상태인데 해당 행을 선택(클릭) 하여 그 행을 선택하고 삭제 버튼을 누르면 삭제되는 방식이다. 

 

또, no의 값도 -1을 해주어 번호가 엉키지 않게 할 생각이다. 

 

+ html 파일을 넣었더니 이 페이지 자체에 css가 적용되어 잘 작동되지 않아서 파일은 사진으로 대체

반응형
저작자표시 (새창열림)

'Front end > JavaScript' 카테고리의 다른 글

(JavaScipt) OpenWeatherAPI 사용법  (0) 2023.03.17
(Java Scipt) 아날로그 시계 만들기  (0) 2023.03.13
카운트다운 계산기(JavaScript)  (0) 2023.03.01
다중 타이머 만들기 (Java Script)  (0) 2023.02.03
JavaScript 시작  (0) 2023.01.04
'Front end/JavaScript' 카테고리의 다른 글
  • (Java Scipt) 아날로그 시계 만들기
  • 카운트다운 계산기(JavaScript)
  • 다중 타이머 만들기 (Java Script)
  • JavaScript 시작
re-hwi
re-hwi
재휘의 개발일기
    반응형
  • re-hwi
    Dvelopment blog
    re-hwi
  • 전체
    오늘
    어제
    • 재휘의 개발일기 (168) N
      • 개발 (1) N
        • 소프트웨어 공학 (25)
      • Python (18)
        • numpy (8)
      • OS (23)
        • 쉽게 배우는 운영체제 (23)
      • Front end (1)
        • HTML (6)
        • CSS (9)
        • JavaScript (18)
        • React (2)
        • Vue.js (5)
        • TypeScript (5)
        • Sass (3)
      • Algorithm (1)
        • 파이썬 알고리즘 인터뷰 (2)
        • 자료구조와 함께 배우는 알고리즘 (20)
      • Android (2)
        • 안드로이드 앱 프로그래밍 with 코틀린 (2)
      • Project (15)
      • Network (0)
      • etc (12)
        • 이것저것 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    정처기
    개발
    프론트엔드
    파이썬
    컴포넌트
    표
    numpy
    연결리스트
    JavaScript
    FE
    오블완
    뷰
    알고리즘
    정보처리기사
    vue
    CSS
    플레이리스트
    js
    티스토리챌린지
    리액트
    자료흐름도
    TS
    scss
    자료구조
    sass
    HTML
    typeScript
    pwa
    타입스크립트
    REACT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
re-hwi
JavaScript를 이용하여 동적 테이블 만들기 (1)
상단으로

티스토리툴바