행 추가하고 나서 db에는 왜 하나만 저장이 될까요..
본문
<script type="text/javascript">
$(function() {
$("#add-obj").click(function() {
var obj = $("#tbl").find("input.ed");
obj.last().clone().insertAfter(obj.last());
});
$("#remove-obj").click(function() {
var obj = $("#tbl").find("input.ed");
var len = obj.length;
if(len == 1) {
alert("더이상 삭제 안 됨");
} else {
$("#tbl").find("input.ed").last().remove();
}
});
});
</script>
<table id='tbl' border="0" cellspacing="0" cellpadding="0" background="#ddd" width="100%">
<tbody>
<tr>
<td class=write_head style="width:85px">학력<br>
<span id="add-obj" style="cursor:pointer;"><img src="<?=$board_skin_path?>/img/btn_file_add.gif"></span>
<span id="remove-obj" style="cursor:pointer;"><img src="<?=$board_skin_path?>/img/btn_file_minus.gif"></span>
</td>
<td>
<input class='ed' style="width:99%;" name="wr_1" itemname="학력" required value="<?=$write['wr_1']?>">
</td>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
</tr>
</tbody>
</table>
왕계란님의 도움으로 제이쿼리를 이용해 버튼을 누르면 행이 추가되게끔 완성하였습니다.
제가 이해가 안되는 부분이
name값을 wr_1로 주면 잘 저장이 되고 나타나지만
행을 추가했을때에는 최근에 추가된 행에만 값이 저장이 되어
list화면에 하나의 글만 나타나고 있습니다.
for으로 돌려보니 그냥 한번에 다 나와버리고..
행 추가하여 내용을 입력할때 보통 어떻게 name값을 주어서 저장을 시키나요?
저는 가장 최근의 글 하나만 저장되어 출력이 됩니다.
그리고 수정을 누르면 역시 최신에 추가했던 행만 나타나있고 기존의 행은 삭제되어있습니다. ㅜㅜ
답변 3
name="wr_1[]"
위와같이 배열로 하시고
db 입력 부분도 배열로 받은 부분을
$wr_1 = implode('|', $_POST['wr_1']); 각 배열을 하나로 묶어주시고
출력부분에서
$wr_1 = explode('|', $_WRITE['wr_1']);
다시 나누어서 출력해주셔야 합니다.
단지 입력단을 늘렷다고 해서 그대로 다 들어가지는 않습니다.
지금 하시고 싶은 작업은 하셔야 할 총 작업 중 25% 쯤 하신 것으로 보입니다. 화이팅!!!
name을 고정 wr_1로만 해서 전달하지 마시고 wr_1[]로 하셔서 전달하셔야 합니다.
리스트에서도
<?php
$wr_1 = explode('|', $_WRITE['wr_1']);
for($i=0;$i<count($wr_1);$i++)
echo "<li>{$wr_1[$i]}</li>";
?>
이렇게 주셔야죠.
implode(). explode()
이런 함수를 알게 되면 검색해서 찾아보세요. 무슨 용도로 쓰이는지..
!-->