'2018/05/13'에 해당되는 글 2건

728x90

Input 필드를 동적으로 추가/삭제하는 코드를 실 활용 코드 수준으로 연습하고 적어둔다.

테스트에 사용한 코드

InputAddRemovejQuery.zip




<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<link rel="stylesheet" type="text/css" href="write.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    var maxField = 5; //최대 개수
    var wrapper = $('.append');
    var extcnt = 1; // 최초 카운트 1
    var fieldHTML = '<div><input type="text" name="ext[]" value="" class="input" /><a href="#" class="remove_btn"><img src="./img/remove-icon.png"/></a></div>';
    $('.add_btn').click(function(){
        if(extcnt < maxField){
            extcnt++; // 숫자 증가
            $('.append').append(fieldHTML); // Add field
            $('#extcount').html("(" + extcnt + "개)");
        }
    });
    $(wrapper).on('click', '.remove_btn', function(e){
        e.preventDefault();
        $(this).parent('div').remove(); // Remove field
        extcnt--; // 카운트 감소
        $('#extcount').html("(" + extcnt + "개)");
    });
});
</script>
</head>
<body>
<?php
    $R['subject'] = isset($R['subject'])? $R['subject']:'';
    $R['ext'] = isset($R['ext'])? $R['kor']:'';
?>
<form name="writeForm" method='post' action='a.write.php'>
    <input type="hidden" name="extcnt" value="0">
    <table class="table table-bordered">
        <tr>
            <td class="td1">제목</td>
            <td><input type="text" name="subject" value="<?php echo $R['subject'];?>" class="input" /></td>
        </tr>
        <tr>
            <td class="td1">내용</td>
            <td>
                <input type="text" name="ext[]" value="<?php echo $R['ext'];?>" class="input" />
                <span id="extcount" style="color: #ff0000;font: 10px verdana,dotum;">(1개)</span>
                <a href="#" class="add_btn"><img src="./img/add-icon.png"/></a>
                <div class="append"></div>
            </td>
        </tr>
        <tr>
            <td colspan='2' align='center'>
                <button type="submit" class="button">생성</button>
            </td>
        </tr>
    </table>
</form>

</body>
</html>

 /* write */
body {    
    font-family: 나눔바른고딕, NanumBarunGothic, 맑은고딕, "Malgun Gothic", 돋움, Dotum, "Apple SD Gothic Neo", sans-serif;
    font-size: 13px;
    color: rgb(33, 33, 33);
    letter-spacing: 0.03em;
}
.input {
    width:400px;
    text-indent: 5px;
    height: auto;  /* 높이값 초기화 */
    line-height : normal; /* line-height 초기화 */
    padding: .2em .3em; /* 상하 우좌 */
    font-family: inherit; /* 폰트 상속 */
    border: 1px solid #ccc; /* 999가 약간 더 진한 색 */
    margin-bottom:5px;
    font-size:12pt;
    border-radius: 3px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
}
.button {
    background-color:#E9C28B;
    border: none;
    border-radius: 5px;
    padding: 10px 20px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer
}
.title {
    font-family:inherit; /* 폰트 상속 */
    font-size: 13pt;
    color:black;
}

.td1 {
    width:60px;
    font-weight:bold;
    color:#444444;
    text-align : center;
    padding:5px 0 5px 0;
    letter-spacing:2px; /* 글자간 간격 */
}

 <?php
// $_POST 데이터 값만 확인하기 위한 코드
if(isset($_POST) && $_SERVER['REQUEST_METHOD'] == "POST"){
    // POST 방식으로 보낸 데이터가 있는지 체크
    extract($_POST);
    print '<pre>';
    print_r($_POST);
    print '</pre>';
}

?>


본 코드는 DB에서 읽어온 데이터를 화면에 표시하고, 데이터 수정, 추가, 삭제하는 로직이 반영된 코드는 아니다.

그냥 단순하게 name 을 배열로 받아서 여러개의 값이 어떻게 넘어가는지 확인하는 코드라고 보면 된다.

name 명칭이 다르게 생성하는 것은 아직 테스트 중이다.

블로그 이미지

Link2Me

,
728x90

css 를 이용하여 테이블을 미려하게 디자인해보자.

<style></style> 사이에 코드를 추가한다.


테이블 테두리를 만드는 속성

테두리는 border 속성으로 만든다.
table, th, td 요소에 적용할 수 있다. tr 요소에는 적용 안된다.


table 요소에 border를 적용하면 표 외각에 테두리가 그려진다.

table {
    width: 100%;
    border: 1px solid #dddddd; /* 테이블 외곽선이 그려진다 */
    border-collapse: collapse; /* 테두리 사이의 간격 제거 */

}


th, td 요소에 border를 적용하면 각 셀에 테두리가 생긴다.

- border와 padding은 상속하지 않는 속성이다.

th, td {
    border: 1px solid #dddddd; /* 각 셀의 외곽선 그리기 */

    padding: 10px; /* 테두리와 내용 사이의 간격 */

    text-align: center; /* 글자 가운데 정렬 */

    vertical-align: middle; /* 셀 안의 내용 세로 정렬 : top, middle, bottom */

}


세로선 없이 가로선만 보이게 하고  싶을 때
table {
  width: 100%;
  border-top: 1px solid #dddddd;
  border-collapse: collapse;
}
th, td {
  border-bottom: 1px solid #dddddd;
  padding: 10px;
}


제목 행에 배경색 추가하기

th {
  background-color: #bbdefb;
}


짝수행에 배경색 추가하기

tr 요소에 nth-child (가상클랙스) 선택자를 이용하여 배경색을 추가한다.

:nth-child는 형제 요소 중에서 규칙을 만족하는 요소를 선택할 때 사용한다.

an+b 대신에 odd을 쓰면 홀수번째 요소가, even을 적으면 짝수번째 요소가 선택된다.

- a와 b는 상수, n은 변수
- n은 정수 0, 1, 2, 3, ···

- even 대신에 2n 으로, odd 대신 2n + 1 로 해도 된다.


tbody tr:nth-child(even) {
    background-color: #f1f1f1;
}


테이블 행(row)에 마우스 올림 효과

table > tbody > tr:hover {
    background-color: #d1f1f1;
}


클랙스를 적용한 테이블 행에 마우스 올림 효과

table.YourClass tr:hover td {
    background-color: #d1f1f1;
}



'Web 프로그램 > CSS' 카테고리의 다른 글

CSS 문법  (0) 2015.03.26
CSS 기초  (0) 2015.03.16
블로그 이미지

Link2Me

,