jquery ajax 질문
본문
--------------index.html-----------
var checkArray = [];
$("input[name=box]:checked").each(function(i){
checkArray.push($(this).val());
});
console.log(checkArray);
$.ajax({
'url': "./deleteAjax.php",
'type': 'post',
'data': {"box": checkArray},
...
})
-------------deleteAjax.php------------
$box = $_POST['box'];
echo($box);
체크된값을 checkArray에 넣고 ajax로 보내서 찍으려고하는데
ajax보내기전에 console.log(checkArray)는 제대로 찍힙니다.
근데 ajax 보내고 success로 찍으면 안나오는데
어디가 잘못됐을까요?
!-->
답변 4
$.ajax({ url: "./deleteAjax.php", type: 'post', data: {box: checkArray}, ... })
datatype:json 추가하시면 될 듯 한데요
$.ajax({
type: "POST",
url: "<?php echo G5_URL; ?>/deleteAjax.php", // URL 다음에 해당경로
cache: false,
async: false,
data: {box : checkArray},
dataType: "json",
success: function(data) {
.....
}
});
php 단에서는 제이슨 인코드라고 그거 넣어서 띄워주면 될것같아요 예를 들어 아래 처럼 하면될것같아요
echo json_encode(array('result'=>'ok', 'msg'=>'완료'));
이렇게 하고 ajax단에서 성공일때 소스를
if(data.result = 'ok') {
alert(data.msg);
}
이런식으로 하면 완료 메시지가 뜹니다.
그리고 php 단에서 포스트값이 넘겨지는 지 확인하고 하셔야할것같아요
print_r로 확인해서 포스트가 원활하게 넘어 오는지 확인하셔야되요
저같은 경우는 array로 값을 여러가지로 넘기려면 1234 이런식으로 넘어오잖아요 이렇게 하지말고 1, 2, 3 이런식으로 콤마를 찍거나 /을 찍어서 ajax단으로 값을 넘겨요 그리고나서 php단에서 explode 함수써서 콤마 제거해서 루프로 돌리면서 쓰면 되거든요