채택완료

ajax 데이터 전달에 관한 문의

Copy
//t.php

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

<script>
  A_id = 1;
  B_id = 2;
  B_nick = 'test';
  pid = 123;
              $.ajax({
                url: "tAjax.php",
                type: "post",
                async:false,
                data : ({ act: "test", A_id:A_id, B_id:B_id, B_nick:B_nick, pid:pid }), 
                success: function (data) {
                        console.log('ajax msg: ' + data);
                      }
            })
  </script>
Copy
//tAjax.php


// 변수 정리
$act = $_POST['act'];

// test
    if ($act =='test') {
        echo '??? : ' . $A_id . ' B: '. $B_id . ' PID: ' . $pid . ' B_nick: ' . $B_nick .'???'; 
    }

?>

위 두 파일을 만든후 실행해보면

??? : 1 B: 2 PID: 123 B_nick: test??? 

결과값이 정상적으로 나옵니다. 

결과값이 undefined 로 나와야 하는거 아닌가요?

저절로 A_id 같은 인수명을 $A_id 같은 변수명으로 사용하나요?????

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

$_POST['A_id'] 식으로 값이 넘어오지만 

php.ini register_globals 값이 on으로 돼 있거나 

@extract($_GET);
@extract($_POST);
@extract($_SERVER);

php extract 함수를 통해서 그냥 사용할수 있게됩니다. 

참고로 그누보드에서는 변수를 그냥 쓸수 있게

common.php 파일에서 위에 처럼 extract 처리를 해주고 있습니다. 

답변에 대한 댓글 1개

아. 그렇군요!! 답변감사합니다.
그래도 혹시 모르니 $A_id = $_POST['A_id']; 해주는게 맞겠죠?

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