채택완료

ajax 문법이 틀렸나요 ㅠㅠ?

2020-04-10 (금) 15:58:20 9,080

지금 500에러가 떠서 뭔지 잘모르겠어요 ㅠㅠ 혹시 문법이 오류가 났는지요..ㅠ?

스크립트문

Copy
$.ajax({
            url : g5_url + "/admin/ajax/ajax_page.php?mode=UPDATE",
            type : "POST",
            data : { idx : <?=$page_idx;?> },
            dataType : "json",
            success : function(result) {
                // console.log(result);
            },
            error : function(e) {
                // console.log(e);
            }
        });
    }, 10 * 1000);

ajax파일

Copy
$mode = $_GET["mode"];

switch($mode) {
    case "UPDATE": {
        $json_data = array();
        $idx = $_POST["idx"];
        
        $q = "UPDATE `${tbl_page_log}` SET `resttime`=`resttime`+3 WHERE `idx`='${idx}'";
        $json_data["query"] = $q;
        $r = sql_query($q);
        $json_data["error"] = mysql_error();
        $json_data["result"] = "SUCCESS";
        
        echo json_encode($json_data);
    }
    break;
}

서버환경:  (PHP7.0, mariadb-10.0.x)

|

답변 4개

채택된 답변
+20 포인트
2020-04-10 (금) 16:06:47
Copy
$mode = $_GET["mode"];
switch($mode) {
    case "UPDATE": 
        $json_data = array();
        $idx = $_POST["idx"];
        
        $q = "UPDATE `${tbl_page_log}` SET `resttime`=`resttime`+3 WHERE `idx`='${idx}'";
        $json_data["query"] = $q;
        $r = sql_query($q);
        $json_data["error"] = mysql_error();
        $json_data["result"] = "SUCCESS";
        
        echo json_encode($json_data);
        break;
}

case쪽  { } 빼보세요.

그리고, 서버설정에 따라 다른데

요즘 디폴트는 

<?php echo $page_idx;?>

로 하셔야할듯하구요.

브라우저 개발자 도구/ 네트워크에 보시면 ajax 결과 확인 가능합니다. 서버가 오류메세지를 반환해도 보입니다.

2020-04-10 (금) 16:47:22

딱히 문제되는게 보이지는 않는데, post로 보낸 php파일의 sql문을 한번 찍어서 확인 해보세요.

$q "UPDATE `${tbl_page_log}` SET `resttime`=`resttime`+3 WHERE `idx`='${idx}'"; 이 부분을

$q "UPDATE `${tbl_page_log}` SET resttime=resttime+3 WHERE `idx`='${idx}'"; 이렇게 바꿔보세요

숫자를 더하는데 문자열로 해놓는다는게 살짝 의심이 되기는 하네요

        $.ajax({
            url : g5_url + "/admin/ajax/ajax_page.php?mode=UPDATE",
            type : "POST",
            data : { idx : "<?=$page_idx;?>" },          // ""때문이지 않을까 싶네요!
            dataType : "json",
            success : function(result) {
                // console.log(result);
            },
            error : function(e) {
                // console.log(e);
            }
        });
    }, 10 * 1000);

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