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

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

QA

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

답변 5

본문

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); 값이 제대로 출력 되는지 확인하세요

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 10,639
© SIRSOFT
현재 페이지 제일 처음으로