test.php에서는 delete 쿼리문이 되는데 ajax에서는 안되는 이유가 뭘까요?

test.php에서는 delete 쿼리문이 되는데 ajax에서는 안되는 이유가 뭘까요?

QA

test.php에서는 delete 쿼리문이 되는데 ajax에서는 안되는 이유가 뭘까요?

본문

test.php 라는 페이지를 만들어서


include_once($_SERVER['DOCUMENT_ROOT'] ."/common.php");

$current_year    = $_POST['db_year'];
$current_month    = $_POST['db_month'];
$db_date        = $_POST['db_date'];
$db_mbid        = $_POST["db_mbid"];
$db_name        = $_POST["db_name"];

$sql = "DELETE FROM g5_aroma_chongpan_attend WHERE db_mbid = 'te5sn9hymvl'";
$result = sql_query($sql, true);
if ($result) {
    echo $sql;
} else {
    echo "삭제 실패";
}


를 넣고

해당 페이지를 실행하면 db에서 해당 아이디값이 삭제가 됩니다.


$(".deletebtn").click(function(){
    var index = $(this).data("index");
    var db_mbid = $("input[name='db_mbid[]']").eq(index).val();
    var db_name = $("input[name='db_name[]']").eq(index).val();
    var db_date = $("input[name='db_date']").val();
    $.ajax({
        url : "/test.php",
        type : "post",
        data : {
        db_mbid: db_mbid,
        db_name: db_name,
        db_date: db_date
        },
        success : function(data) {
            console.log(data);    
            alert(data);
        },
            error: function(data) {
                console.log('error:' + data.status);
        },
        complete : function(data) {
        }
    });
})


를 만들어서 ajax로 간단하게 지울려는데 성공은 하는데 실db에서는 지워지지가 않네요

변수값 상관없이 강제 아이디를 지정해서 테스트를 해보는데 지워지지가 않아서 난감하네요...

이유가 뭘까요?

이 질문에 댓글 쓰기 :

답변 5

전달하는 파라미터 요청값들중 누락된 부분이 있는것 같고

$.ajax 에서 HTTP Request Methods 가 type 속성으로 지정되어 생기는 문제 같습니다.

다음 코드는 Form 서브밋 방식과 Ajax 방식을 확인해볼수 있는 예제입니다.


<form method="post" action="/test.php">
    <ul>
        <li>db_year : <input type="text" name="db_year" value="<?php echo date('Y'); ?>"></li>
        <li>db_month : <input type="text" name="db_month" value="<?php echo date('n'); ?>"></li>
        <li>db_date : <input type="text" name="db_date" value="<?php echo date('j'); ?>"></li>
    </ul>
    <ul>
        <li>db_mbid[] : <input type="text" name="db_mbid[]"></li>
        <li>db_name[] : <input type="text" name="db_name[]"></li>
    </ul>
    <input type="submit"                   value="deletebtn-submit" data-index="0">
    <input type="submit" class="deletebtn" value="deletebtn-ajax" data-index="0">
</form>
 
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(".deletebtn").click(function(e){
    e.preventDefault();
 
    var index = $(this).data("index");
 
    var db_year = $("input[name='db_year']").val();
    var db_month = $("input[name='db_month']").val();
 
    var db_mbid = $("input[name='db_mbid[]']").eq(index).val();
    var db_name = $("input[name='db_name[]']").eq(index).val();
    var db_date = $("input[name='db_date']").val();
    $.ajax({
        url : "/test.php",
        // type : "post",
        method : "post",
        data : {
            db_year: db_year,
            db_month: db_month,
        db_mbid: db_mbid,
        db_name: db_name,
        db_date: db_date
        },
        success : function(data) {
            console.log(data);    
            alert(data);
        },
            error: function(data) {
                console.log('error:' + data.status);
        },
        complete : function(data) {
        }
    });
})
</script>

강제 아이디를 지정해서 테스트를 해보는데 지워지지가 않아서 <===

test.php 화일을 직접 실행하면 삭제 되는데

ajax로는 안된다는 것은 ajax로 test.php가 호출되지않는 것입니다

test.php 상단에  print_r($_POST); die; 처럼 넣어서 console.log(data); 값이 제대로 출력 되는지 확인하세요

 

 

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

회원로그인

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