$.post 안에서 리턴을 못하나요?

$.post 안에서 리턴을 못하나요?

QA

$.post 안에서 리턴을 못하나요?

답변 4

본문

완성형은 아니지만 

작성하다 보니 아래처럼 코드가 되었습니다.


<?php
include_once ('./_common.php');
include_once (G5_PATH.'/head.php');
?>
<script type="text/javascript">
$(document).ready(function(){
    $(document).on("click", "button", function(){
        var temp = foo(99);
        console.log("함수 리턴값", temp);
    });
});
function foo(idx){
    $.post("./ajax.php", {idx:idx}, function(data){
        console.log("ajax안의 값", data.idx);
        return data.idx;
    }, "json");
}
</script>
<button type="button">버튼</button>

<?php
include_once (G5_PATH.'/tail.php') ;

 

함수안에 $.post안의 data.idx 값을 foo함수 리턴값으로

리턴을 하려면 어떻게 해야 하나요?

 

이 질문에 댓글 쓰기 :

답변 4

이렇게 해보세요



function foo(idx){
    var data_idx;
    $.ajaxSetup({ async: false });
    $.post("./ajax.php", {idx:idx}, function(data){
        console.log("ajax안의 값", data.idx);
        data_idx = data.idx;
    }, "json");
    return data_idx;
}


<script type="text/javascript">
$(document).ready(function(){
    $(document).on("click", "button", async function(){
        var temp = await foo(99);
        console.log("함수 리턴값", temp);
    });
});
async function foo(idx){
    return $.post("./ajax.php", {idx:idx}, function(data){
        console.log("ajax안의 값", data.idx);
        return data.idx;
    }, "json");
}
</script>
<button type="button">버튼</button>

var temp = foo(99);<--- foo를 호출하고 바로 다음행으로 진행 되어버리기 때문에

다음행에서 return값을 못받은 상태로 출력하게 됩니다

굳이 이렇게 할 필요가 있나요?

 $(document).on("click", "button", function(){

     idx = 99;
      $.post("./ajax.php", {idx:idx}, function(data){
       var temp = data.idx;
        console.log(" 리턴값", temp);
    }, "json");       
 });

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #post ×
전체 59
© SIRSOFT
현재 페이지 제일 처음으로