자바스크립트 체크박스 배열 값 DB저장 채택완료
dudqls
2년 전
조회 4,898
</p>
<p>function ajax_del(){</p>
<p> if (!confirm(`정말로 삭제하시겠습니까?`)) {</p>
<p> //취소(아니오) 버튼 클릭 시 이벤트</p>
<p> } else {</p>
<p> // 확인(예) 버튼 클릭 시 이벤트</p>
<p> var chk = [];</p>
<p> $("input[name='chk[]']:checked").each(function(i){</p>
<p> chk.push($(this).val());</p>
<p> });</p>
<p> let data = {"chk" : chk};</p>
<p> console.log(data);</p>
<p> $.ajax({</p>
<p> url:"<?php echo G5_URL?>/admin/ajax_delete.php",</p>
<p> type:'POST',</p>
<p> data: data,</p>
<p> success:function(data){</p>
<p> alert("삭제가 완료되었습니다.");</p>
<p> location.reload(true);</p>
<p> },</p>
<p> error:function(jqXHR, textStatus, errorThrown){</p>
<p> alert("에러 발생~~ \n" + textStatus + " : " + errorThrown);</p>
<p> self.close();</p>
<p> }</p>
<p> });</p>
<p> }</p>
<p> }</p>
<p>
스크립트로 체크된 배열값을 보내긴 하였습니다.
ajax_delete.php
</p>
<p><?php</p>
<p> include_once $_SERVER['DOCUMENT_ROOT'].'/common.php';</p>
<p> $chk_arr = $_POST["chk"];</p>
<p>$cnt = count($chk_arr);</p>
<p>$subqry='';</p>
<p>$it_id_array = array();</p>
<p>$it_price_array = array();</p>
<p>$pin_array = array();</p>
<p> </p>
<p>for($i=0; $i<$cnt; $i++) {</p>
<p>if($subqry) $subqry .= ',';</p>
<p>$subqry .= $chk_arr[$i];</p>
<p>}</p>
<p> </p>
<p>if($subqry) {</p>
<p>$find_no = "SELECT * FROM sw_pin_box WHERE no = ('.$subqry.')";</p>
<p>//sql_query("INSERT INTO sw_pin_box_del SET no = '{$find_no['no']}', it_id = '{$find_no['it_id']}', it_name = '{$find_no['it_name']}', it_price = '{$find_no['it_price']}', pin = '{$find_no['pin']}', status = 'N', datetime = NOW()");</p>
<p>sql_query('DELETE from sw_pin_box where no in ('.$subqry.')');</p>
<p>}</p>
<p>?></p>
<p>
배열값은 no이고 no에 해당된 데이터정보들을 삭제는 가능합니다. 하지만 sw_pin_box테이블에서는 삭제되지만 그 정보들을 그대로 sw_pin_box_del테이블에 insert를 해야하는데 이름이랑 등등을 배열로 다시 해야하는데 어려워서 해결하지못하고있습니다ㅠㅠㅠ 방법좀알려주세요..
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
2년 전
</p>
<p>if($subqry) {
$find_no = sql_fetch("SELECT * FROM sw_pin_box WHERE no IN ($subqry)");
if ($find_no) {
sql_query("INSERT INTO sw_pin_box_del (no, it_id, it_name, it_price, pin, status, datetime)
VALUES ('{$find_no['no']}', '{$find_no['it_id']}', '{$find_no['it_name']}', '{$find_no['it_price']}', '{$find_no['pin']}', 'N', NOW())");
}
sql_query("DELETE from sw_pin_box where no in ($subqry)");
}</p>
<p>
dud 님 다시 뵙네요, 해당 코드로 해보시겠나요?
로그인 후 평가할 수 있습니다
답변에 대한 댓글 5개
d
dudqls
2년 전
기능은 되긴되지만 체크된 배열수 만큼 insert를 해야하는데 그것은 불가능하네요ㅠㅠㅠ 감사합니다!
�
액트온
2년 전
그부분 깜빡헀군요, 수정해드릴게요.
�
액트온
2년 전
[code]
if($subqry) {
$cnt = count($chk_arr);
for($i=0; $i<$cnt; $i++) {
$find_no = sql_fetch("SELECT * FROM sw_pin_box WHERE no = $chk_arr[$i]");
if ($find_no) {
sql_query("INSERT INTO sw_pin_box_del (no, it_id, it_name, it_price, pin, status, datetime)
VALUES ('{$find_no['no']}', '{$find_no['it_id']}', '{$find_no['it_name']}', '{$find_no['it_price']}', '{$find_no['pin']}', 'N', NOW())");
}
}
sql_query("DELETE from sw_pin_box where no in ($subqry)");
}
[/code]
if($subqry) {
$cnt = count($chk_arr);
for($i=0; $i<$cnt; $i++) {
$find_no = sql_fetch("SELECT * FROM sw_pin_box WHERE no = $chk_arr[$i]");
if ($find_no) {
sql_query("INSERT INTO sw_pin_box_del (no, it_id, it_name, it_price, pin, status, datetime)
VALUES ('{$find_no['no']}', '{$find_no['it_id']}', '{$find_no['it_name']}', '{$find_no['it_price']}', '{$find_no['pin']}', 'N', NOW())");
}
}
sql_query("DELETE from sw_pin_box where no in ($subqry)");
}
[/code]
d
dudqls
2년 전
감사합니다 정상작동되요ㅠㅠㅠㅠ
�
액트온
2년 전
네 좋은 하루되세여 ㅎ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인