테스트 사이트 - 개발 중인 베타 버전입니다

ajax 문법이 틀렸나요 ㅠㅠ? 채택완료

바트컨트롤 5년 전 조회 8,879

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

 

스크립트문

</p>

<p>        $.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);</p>

<p>

 

ajax파일

</p>

<p>$mode = $_GET["mode"];</p>

<p>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;

}</p>

<p>

 

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

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

답변 4개

채택된 답변
+20 포인트

</p>

<pre>
$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쪽  { } 빼보세요.

 

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

요즘 디폴트는 

$page_idx;?>

로 하셔야할듯하구요.

로그인 후 평가할 수 있습니다

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

5년 전

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

로그인 후 평가할 수 있습니다

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

딱히 문제되는게 보이지는 않는데, 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}'"; 이렇게 바꿔보세요

 

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

 

 

로그인 후 평가할 수 있습니다

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

m
5년 전
        $.ajax({
            url : g5_url + "/admin/ajax/ajax_page.php?mode=UPDATE",
            type : "POST",
            data : { idx : "" },          // ""때문이지 않을까 싶네요!
            dataType : "json",
            success : function(result) {
                // console.log(result);
            },
            error : function(e) {
                // console.log(e);
            }
        });
    }, 10 * 1000);
로그인 후 평가할 수 있습니다

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

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

로그인