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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
여분필드 값 수정 시 나타나게 하는 방법

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;?>;

 

 

수정페이지에 디비에 저장된 값이 표시되도록 인풋을 넣어줘야 해요 포문으로 일괄 표시되게 할수도 있어요 이상 자고나니 개발자였습니다

글을 쓸때 해당 wr_ 값들이 자바스크립트로 생성된 폼이라면
수정시에도 그 값들이 출력되게 하거나 input hidden 속성으로라도 표시해줘야합니다.

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

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

회원로그인

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