2012-02-17 3 views
0

에 게시물에서 데이터를 반환 않습니다어떻게 내가이 코드를 가지고 변수 JQuery와

function nameToCode(nameGroup) { 

    $.post("execute.php", { something: sendSomething }, function(data) { 

     return data; 

    }); 

} 

variable = nameToCode("some text"); 

하지만 변수에 얻을 수있는 유일한 것은, 어떤 아이디어가 정의되지? 감사.

function nameToCode(nameGroup, callback) { 
    $.post("execute.php", { something: sendSomething }, function(data) { 
      callback(data); 
    }); 
} 

nameToCode("some text", function(variable) 
{ 
    /* use variable here */ 
}); 

답변

4

결과는 즉시 사용할 수 없습니다. 비동기 문제가 있습니다. .post 대신 .ajax를 사용할 수 있습니다.

function nameToCode(nameGroup, callback) { 
    $.ajax({ 
    url: 'execute.php', 
    type: 'POST', 
    aysnc:false, 
    data: 'something=sendSomething', 
    success: function(data) { 
     return data; 
    } 
}); 

이렇게하면됩니다.

뜻은 작동하지 않거나 해결책이 마음에 들지 않습니까?

자바 스크립트 작업 프로세스입니다. js는 동기화 작업을 기다리지 않습니다. 성공 함수 블록에서 작업을 수행하거나 async : false 매개 변수를 사용해야합니다. 나는 당신이 원하는 성공 함수 블록에서 무엇이든 할 것을 제안했다. aysnc : false를 사용하면 짧은 시간 동안 브라우저가 차단됩니다.

-1

당신은 다음과 같이 콜백을 얻을 캔트 : 당신이 약간 다르게 코드를 구성해야합니다 있도록

1

$.post의 네 번째 매개 변수는 dataType입니다. 반환 값 데이터가 JavaScript 객체 또는 배열로 파싱되도록 ​​JSON으로 설정할 수 있습니다. 당신의 execute.php 파일에서

$.post(
    "execute.php", 
    { something: sendSomething }, 
    function(data){ return data; }, 
    'json'); 

, 당신은

<?php 
$return_data=array('nameToCode'=>'some text'); 

header('Content-Type: application/json'); 
echo json_encode($return_data); 
exit(); 
과 같은 작업을 수행 할 수 있습니다
관련 문제