2차 문제 글수정시 문제점
본문
https://sir.kr/qa/530766 에서 1차적으로 문제점을 해결했는데
2차문제가 글작성후 수정 누르면 링크가 없어지네요
4개의 링크를 넣고 글쓰면
db에 4개 링크 다들어가있음 근데 글수정 눌러보면
이렇게 3개만 나와있고
추가 눌러보면 빈칸으로 나오네요. 이전으로 돌리면 링크 4개 다시 정상적으로 나오는데
질답에 나온 소스 넣으면 위처럼 발생합니다 글 수정시 링크 유지할수있는 해결방법이 있을까요
<?php
// 처음에는 3개까지만 입력창을 표시합니다.
for ($i = 1; $is_link && $i <= 3; $i++) {
?>
<div class="bo_w_link write_div">
<label for="wr_link<?php echo $i ?>"><i class="fa fa-link" aria-hidden="true"></i><span class="sound_only"> 링크 #<?php echo $i ?></span></label>
<input type="text" name="wr_link<?php echo $i ?>" value="<?php if($w=="u"){ echo $write['wr_link'.$i]; } ?>" id="wr_link<?php echo $i ?>" class="frm_input full_input" size="50">
</div>
<?php
}
?>
<button type='button' class="btn_add_link">링크추가</button>
<button type='button' class="btn_del_link">링크추가</button>
<script>
$(function() {
$('.btn_add_link').on('click', function() {
var link_count = $('.bo_w_link').length;
if (link_count < 10) {
var new_link_div = $('<div class="bo_w_link write_div">\
<label for="wr_link' + (link_count + 1) + '"><i class="fa fa-link" aria-hidden="true"></i><span class="sound_only"> 링크 #' + (link_count + 1) + '</span></label>\
<input type="text" name="wr_link' + (link_count + 1) + '" id="wr_link' + (link_count + 1) + '" class="frm_input full_input" size="50"></div>');
$('.bo_w_link').last().after(new_link_div);
}
});
$('.btn_del_link').on('click', function() {
var link_count = $('.bo_w_link').length;
if (link_count > 3) {
$('.bo_w_link').last().remove();
}
});
});
</script>
답변 3
추가 하면서 input 태그에 값을 넣어주어야 값이 나오죠
php 부분에서
$linkStr = '';
for($k=1; $k<11; $k++);{
$linkStr .=$deli.$write['wr_link'.$k]; $deli='|';
}
자바스크립트 부분에서
<script>
linkStr ="<?php echo $linkStr;?>";
linkArr =linkStr.split('|');
---------------------------------
$('.bo_w_link').last().after(new_link_div); 다음에 추가
$("#wr_link"+(link_count+1)).val( linkArr[link_count]);
for ($i = 1; $is_link && $i <= 3; $i++) { <= 이 부분 때문인 것으로 보입니다.
글 수정 시 wr_link4까지 존재한다면 $i<=4 가 되어야 겠지요.
의도하시는 게 글 작성 시 링크입력을 3개까지 보이고 갯수는 추가가 가능하다면,
글 수정 시에는 wr_link1~5의 값이 존재하는 만큼 for문을 돌려주셔야 할 듯 합니다.
스크립트에서 어디에도 기존 작성된 $wirte 변수를 불러오는곳이 없습니다.
단지 생성만 해주는것이라 스크립트를 변경해야 합니다.