test.php에서는 delete 쿼리문이 되는데 ajax에서는 안되는 이유가 뭘까요?
본문
test.php 라는 페이지를 만들어서
를 넣고
해당 페이지를 실행하면 db에서 해당 아이디값이 삭제가 됩니다.
를 만들어서 ajax로 간단하게 지울려는데 성공은 하는데 실db에서는 지워지지가 않네요
변수값 상관없이 강제 아이디를 지정해서 테스트를 해보는데 지워지지가 않아서 난감하네요...
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>
$db_mbid = $_POST["db_mbid"];
...
$sql = "DELETE FROM g5_aroma_chongpan_attend WHERE db_mbid = '{$db_mbid}'";
..
당연 sql은 변경하셨겠죠
$result = sql_query($sql, true);를
sql_query($sql);로 바꿔보시게요
강제 아이디를 지정해서 테스트를 해보는데 지워지지가 않아서 <===
test.php 화일을 직접 실행하면 삭제 되는데
ajax로는 안된다는 것은 ajax로 test.php가 호출되지않는 것입니다
test.php 상단에 print_r($_POST); die; 처럼 넣어서 console.log(data); 값이 제대로 출력 되는지 확인하세요
답변을 작성하시기 전에 로그인 해주세요.