여분필드 값 수정 시 나타나게 하는 방법

여분필드 값 수정 시 나타나게 하는 방법

QA

여분필드 값 수정 시 나타나게 하는 방법

본문

<ul id="url_input">
<li>
  <table id="table10" style="width:100%;"> 
<tr><td>
       <label class="col-md-10 col-form-label" for="wr_subject">1.상품내용<strong class="sr-only">필수</strong></label>
<textarea id="wr_subject" type="text" name="wr_subject" required class="form-control required"  rows="5"> <?php 
                    if(empty(trim($write['wr_subject']))) {
                        echo"상품명 : \n 상품URL : \n 가격 : \n 수량 : \n 옵션 : ";
                    } else {
                        echo $write['wr_subject'];
                    }
                    ?>
</textarea></td></tr></table>

</li></ul>
<span id="addinput">상품추가</span>
<script>
$(document).ready(function() {
    var max_fields      = 10; 
    var add_button      = $("#addinput");
    var wr =30;
   
    var x = 1;
    $(add_button).click(function(e){ 
        e.preventDefault();
        if(x < max_fields){ 
            x++; wr++;
            $("#url_input").append('<li> <table  id="table10" style="width:100%;"><tr><td><textarea type="text" name="wr_'+wr+'" required class="form-control required"  rows="5"> 상품명 : \n 상품URL: \n 가격 : \n 수량: \n 옵션 : </textarea></tr></td></table>  <img src="./img/" alt="상품추가" title="삭제" class="btn_delete" /></li>'); 
        }
    });
   
    $("#url_input").on('click','.btn_delete',function(){
        $(this).parent('li').remove(); x--; wr--;
    })
});
</script>

위 내용처럼 여분필드를 상품추가 버튼을 누르면 31부터 추가 하게 했는데, DB까지는 정상적으로 저장이 됩니다. 뷰페이지에서는 전부 디스플레이가 되는데, 수정을 하면 wr_subject  만 나오고, 그 후 31부터 저장이 되어 있는 필드값은 나오지 않는데, 혹시 수정 시 추가 했던 필드 값이 수정 시 나오게 하는 방법이 있을까요?

이 질문에 댓글 쓰기 :

답변 5

수정시 값이 나오게 하는 것은 다음처럼 만들면 되긴하는데 

textarea를 자바스크립트로 추가/삭제하는 것은 저렇게 하면 문제가 있습니다

중간에 있는 textarea를 삭제 해버리면 어떻게 되는가요?

예를들어 wr_38까지 생성되었는데 wr_35를 삭제 하면 wr--에 의해서 wr값은 다시 38이 되어

생성 되어있는 wr_38과 중복이 되어버리겠네요(wr_35는 아예 textarea가 없게되겠고)

추가/삭제시 name붙이는 방법을 바꾸어야 하겠습니다

 

</textarea></td></tr></table>

</li></ul>
<span id="addinput">상품추가</span>

==>

</textarea></td></tr></table>

</li>

<?php wr_first =30;

if($w=='u'){

for($k=31; $k< 41; $k++){ 

$wr_k='wr_'.$k;

 if( !$write[$wr_k] ){ $wr_first=$k-1; break; }

?>

<li> <table  id="table10" style="width:100%;"><tr><td><textarea name="<?php echo $wr_k'?>" required class="form-control required"  rows="5"><?php echo $write[$wr_k];?></textarea></tr></td></table> </li>

<?php }

}

?>

</ul>
<span id="addinput">상품추가</span>

~~

 var wr = <?php echo wr_first;?>;

 

 

이게 지금 보니 동적 추가폼이군요 그러면 스크립트에서 db에 wr 몇까지 있는지 알아내서 그만큼 인풋을 스크립트로 생성해주어야 합니다 그래야 티비값이 수정시에 나옵니다

답변을 작성하시기 전에 로그인 해주세요.
전체 498
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT