문돌이의 Hello, World!/리얼 컴맹의 왈가왈부

비전공자 코딩독학 #9 : HTML 기초 3편 table, form 요소

길잃은 문돌이 2022. 7. 6. 23:42

안녕하세요 길잃은 문돌이 입니다. 오늘은 비전공자 코딩독학 #8에 이어서, 또다시 html 기초편, html 기본편을 학습해보도록하죠. 아니, 제가 학습하는거죠. 단순한 기술 블로그가 되기 보다는 제가 학습하는 것들을 조금 기록하고 싶다는 생각에 시작한것이기 때문에, 강의를 들으면 충분히 이해할 수 있는 부분이고, 더 심도깊은 내용을 알기 위해서는 다른 기술 블로그들을 보시는게 좋습니다. 

 

html 3편 from(입력) 공부

 

https://lostedhelloworld.tistory.com/23

 

비전공자 IT 코딩독학 #8 : HTML 기초 2편 기본태그 및 구조

안녕하세요 길잃은 문돌이입니다. 오늘은 저번의 비전공자 IT 코딩독학 #7 이후의 몇가지 제가 오늘 배운 것들을 하나하나 작성하고자 합니다. 오늘 기본적으로 HTML기초 2편에는 1편의 연장선으

lostedhelloworld.tistory.com

 

목차

1. Table(표) 이해하기 
테이블의 구조 , td/ tr/ colspan 등등
2.form 태그 이해하기
input, radio,option등등

비전공자 IT 코딩독학 HTML 3편 (table, form 이용하기)

 

 

1. table 태그의 이해와 실행

 

Table이란 표를 나타내는 태그이며, 간단한 실습을 한다면

<html>
<body>
이름     성별      주소
최진혁    남    청주
</body>
</html>

→ 이렇게 코딩을 하면,  "이름 성별 주소 최진혁 남 청주" 한줄로 나온다

 

 

1) 표에 데이터를 입력하기.

 

 표를 각각의 데이터를 입히기 위해서, <td> 태그를 이용한다.

<html>
<body>
<td>이름</td> <td>성별</td> <td>주소</td>
......
</body>
</html>

 

→ 이렇게 해도 "이름 성별 주소 최진혁 남 청주" 한줄로 나온다.

 

 

 

2) 행과 열 나누기

 

행을 기준으로 <tr>이라는 태그로 묶어준다.

<tr>이란, table row의 의미로 표의 행을 의미한다.

 

<html>
<body>

<table>
  <tr>
     <td>이름</td> <td>성별</td> <td>주소</td>
  </tr>
   <tr>
       ......
   </tr>
</table>

</body>
</html>

 

→ 이렇게 <tr>태그를 넣고 마지막으로 이 태그가 테이블이라는것을 알려주기 위해서 <table> 태그로 감싸면

 

 

이름   성별  주소

최진혁 남 청주

 

열, 행으로 나눠지게 된다.

 

 

3)테이블 형태로 구분짓기

 

css를 통해서 꾸밀 수 있는데,  html을 통해서 한다면,

 

<table boarder = "2"> 로 

boarder라는 속성을 이용한다면, 

이름 성별 주소
최진혁  청주

의 형태로 나온다.

 

즉, 기본 구조는

<body>
<table>
<tr>
<td>
</tr>
</table>
</body>

순으로 하게 되면 테이블의 형태가 나온다.

 

 

 

*테이블의 의미론적 태그

 

이름 성별 주소

의 경우는 테이블의 값이 아닌, 이름이기 때문에, <thead>로 분류가 되며,

<thead>에서의 값은 ,  단순한 데이터가 아니기에 <th>로 구분하게 된다면, 진하게 표시되며, 첫번째 행을 의미한다.

 

태그는 정보를 정의하는 역할이기 때문에 웹페이지를 조금 더 가치있게 만들기 위해서는 문서를 구조화 하고 잘 표현해야한다.

 

길잃은문돌이 부산

테이블에서 본문(데이터)에 해당하는 것은 <tbody>로 분류 되며,

 

 

3줄 4줄 이상일때는, 

마지막 줄은 <tfoot> 으로 분류하여 나눌 수 있다.

 

4) 테이블의 병합 방법

이름 성별 주소 회비
문돌이 부산 1000
문순이 500
합계 1500

 

이런식으로 병합을 원한다면, 병합을 원하는 첫번째 부분 문돌이가 있는 <tr>에서 <td rowspan= "2">부산</td>를 넣으면 된다.

 

→rowspan = "2" 이라는것은 행 2개를 병합한다.

 

이와 같이 <td colspan = "3">합계</td>로 넣는다.

 

→ colspan= "3" 이라는 것은 열 3개를 병합하는 것이다.

 

-----------------------------------------

 

2. form태그의 구조와 이해

 

사용자가 입력한 정보를 서비스 제공하는 서버에 전송하고, 입력하거나 클릭, 선택하여 서버와 통신을 하기 위함이다.

 

 

1) form 태그 내 하위 태그

 

<input>

사용자로 부터 정보를 입력 받을 수 있는 태그

 

속성 : 

<input type="text">

일반적 텍스트 상자가 생김.

 

<input type = "password">

텍스트 상자가 생기는데, 패스워드의 입력으로 보안을 위해서 *로 표시

 

<input type = "submit">

"제출"이라는 클릭 할 수 있는 버튼이 생김

 

type 이외의 속성

 

value = ""

기본값을 만든다

ex ) <input type= "text" name="id" vaule="아이디를 입력하세요">

 

 

2) form 태그 의 구조

 

<form action = " 서버 명 ">
  아이디 : <input type = "text">
  비밀번호 <input type = "password">
</form>

 

form 의 속성의 action은 사용자가 입력한 정보를 어디로 보낼지를 주소를 작성 하는데

맹점은 어떠한 이름으로 전송이 될지 애매하다. 이런걸 타파하기 위해서, 

 

아이디정보 (text 속성)

비밀번호 정보(password 속성)

주소정보(text 속성)

 

>> 아이디와 주소의 속성이 같기에 어떠한 정보가 어떠한 정보인지 모르기 때문에

name이라는 속성을 하나 더 준다.

 

<input type = "text" name ="id">

<input type = "text" name= "address"> 

 

 

<input type = "text" name= "" >

 

가 기본이라는걸 생각하자!

 

text와 관련된 내용

 

여러줄을 입력하고 싶은 입력줄을 생성하고 싶을때,  

 

<textarea> 태그

(input 속성이 아님!)

 

속성: 

cols, rows

 

ex) <textarea cols="50" rows="2">   기본값 </textarea>

 

 

3) 콤보박스 이용해보기(option 태그)

 

<option> </option>

option 태그를 사용하되, select 태그로 묶는다.

<select>
	<option>A</option>
	<option>B</option>
	<option>C</option>
</select>

 

<select name="color"> 로 지정해야지

서버로 전송할때 지정되어서 저장된다. 

<select name= "color">와 <option value= "red"> 를 하게 되면

서버에 전송될때 color = red로 전송이 되기에 

 

콤보박스의 기본구조는

<select name= "">
     <option value= "">   xxx </option>

 

이 기본 구조이다.

 

select의 속성에는 multiple이 있는데,

<select name = "" multiple>을 하게 되면 콤보박스 모두 나타나게 되고, 복수 개의 선택할 수 있다. 

 

 

4) 라디오 버튼 , 체크 박스를 이용하기

 

<input type = "radio> 

<input type = "radio>

<< 이러한 버튼이 나오는데, 여러개의 라디오 버튼은 동시에 눌러지게 세팅이 되는데,

 

<input type = "radio" name= "color">

<input type = "radio" name= "color">

와 같이 동시에 name의 속성을 둔다면, 하나의 버튼만을 클릭하게끔 되어있다.

성별 같은 경우 남 , 여 같은 성별을 가질 수 없기에, name= "gender"로 묶는게 좋다.

또한, 전송을 할때 정보를 주기 위해서

<input type = "radio" name= "color" value="red">

<input type = "radio" name= "color" value= "blue">

가 기본 구조이다.

 

 

체크 박스의 경우, 

 

라디오 버튼과 같이

<input type = "checkbox" name= "size" value = 95>

<input type = "checkbox" name= "size" vaule = 100>

<< 이러한 네모난 형태가 나온다.

 

여러개의 선택이 가능하게 된다.

 

또한, checked 속성을 통해서 라디오버튼과 체크박스가 기본적으로 클릭이 되어있게끔 설정이 가능하다.

 

 

 

5) 버튼 구현해보기 

 

제출하는 버튼은 다르다는것을 알아야한다.

<input type = "submit">

<< 이러한 버튼 모양이 나오는데,

<input type = "submit" value ="메롱">

<< 이렇게 버튼의 이름을 바꿀 수 있다.

<input type = "button"> 

<< 일반적인 버튼은 UI만 따온다는 것!

*value = 로써, 버튼 안에 글자를 넣을 수 있다.

<input type ="reset">

<< reset은 초기화 버튼을 생성 가능!

 

 

 

6) hidden 태그의 의미와 실행 

 

서버로 전송을 해야하는데 , UI가 필요없거나 몰래 서버로 전송해야하는 경우

<input type = "hidden" >이다.

 

텍스트 필드가 아닌, 버튼이 아닌, 보이지 않는 상태에서 보내는 역할을 한다.

 

 

 

7) 레이블 태그의 이해

 

ID : <input type = "text"  name = "ID" > 에서

<label> ID </label> : <input type ="text" name= "ID"

 

1번째 방법: label의 속성 중 for 를 사용해서 레이블의 정보를 줄 수 있다.

<label for = "Id_txt"> ID</label>:

<input id= "id_txt" type = "text"  name= "id">

가 된다면, 

 

ID : 

가 될 텐데,

앞에 나와있는 ID가 label로 둘러 쌓여있고, 속성중 for가 id_txt로 되어있고,

텍스트 상자 또한 id가 id_txt 가 되어있기 때문에 ID를 클릭만 해도 레이블이 텍스트상자 ID와 같기 때문에 키보드 커서가 텍스트 박스로 간다.

 

2번째 방법:

 

<label>ID:

<input id= "id_txt" type = "text"  name= "id">

</label>

 

2번째 방법을 써도 레이블 ID를 클릭해도 키보드 커서가 텍스트 상자로 옮겨진다. 

 

 

 

 

8) method 속성의 이해 (form태그 내 삽입)

 

지금까지 서버로 전송하는 방법은 get을 사용한것이다.

 

이제는 get과 post를 설명 하는 내용이며, 서버쪽 기술의 이해가 조금 필요하다.

<form action= " www.메롱.php">

     <input type="text" name = "id">

     <input type ="submit">

</form>

을 클릭 하게 되면, 

 

ww1. 메롱.php?id= xxxx로 보내게 된다.

 

get으로 하는 방식이 

ww1.메롱 .php?id= xxx 처럼 id와 비밀번호가 노출이 된다.

 

post로 서버로 전송을 하게 되면,

ww1.메롱.php 의 그대로 url이 아닌, 데이터를 숨겨서 전송하게 된다

 

그 방법은

 

<form action ="www.메롱.php" method = " " >

method 에는 get방식 또는 post 방식으로 나눠져있다.

 

 

9) 파일 업로드 (input 태그의 속성)

 

<form action= "www. 메롱 .php">

   <input type="file">

 

<< 이렇게 파일 업로드 형태가 생긴다.

 

선택한 파일을 보내기 위해서는 

<input type="submit"> 이 필요하며,

 

<form action ="www. 메롱.php" method= "post" enctype = "multipart/form-data">로 해야한다.

 

여기서 enctype="multipart/form-data" 는 약속을 한 것이기 떄문에 그냥 알자!

 

파일 뿐 아니라 다른 아이디랑 ID와 패스워드를 함께 받고 싶다면

<input type="text name="id">

<input type="password name="pwd">

를 함께 코드에 넣으면 된다

 

즉, 

 

<form action="www.메롱. php" method="post enctype="multipart/form-data">

     <input type="text" name="id">

     <input type="password" name="pwd">

     <input type="file" name="portfolio">

</form>

 

으로 하면, 메롱 php에 id, pwd , portfolio의 정보가 함께 간다. 

 

 

 

 

오늘 하루 태그에 대해서 조금 공부를 했는데 아직 제대로 사용해본 적도 없고, 서버와 통신하는 부분 method 속성과 action속성의 경우 조금 어렵긴 해도 추후에 알고 나면 더 넓게 보이지 않을까 싶다.