테스트 사이트 - 개발 중인 베타 버전입니다

자바스크립트 체크박스 배열 값 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 포인트
A
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]
d
dudqls
2년 전
감사합니다 정상작동되요ㅠㅠㅠㅠ
액트온
2년 전
네 좋은 하루되세여 ㅎ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인