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

,