2012-03-30 2 views
-1

jquery 플러그인 datatables을 사용 중이며 일부 데이터를 조작하기 위해 fnRender 함수를 이용하려고합니다.이 자바 스크립트 함수가 내 값을 경고하지만 같은 값을 반환하지 않는 이유는 무엇입니까?

내 $ .post에서 JSON 문자열을 반환하는 PHP 스크립트가 있습니다. 각 게시물에서 얻은 샘플 응답은 다음과 같습니다. {"description":"myvalue"}. Chrome 개발자 도구에서 가져 왔습니다.

$passedVal = mysql_real_escape_string(($_POST['gpn'])); 
$descriptionPrint = array('description' => ""); 

include 'db_include.php'; 

$getDescription = "SELECT part_number_description, description FROM unit_description 
      WHERE part_number_description = '$passedVal' "; 
$result = mysql_query($getDescription,$db) or die(mysql_error($db)); 

    while ($row = mysql_fetch_array($result)) { 

    extract($row); 

    $descriptionPrint = $description; 
    echo json_encode(array('description' => $descriptionPrint)); 
    } 

각 쿼리에서 반환되는 값이 하나만 :

$.post("functions/getDescription.php", {gpn:oObj.aData[1]}, 
    function(data) { 
    returnedVal = jQuery.parseJSON(data); 
    var test = returnedVal.description; 
    //alert(test); 
    return test; 
    }); 

가 여기 내 PHP 스크립트입니다 :

여기에 내 게시물 기능입니다.

모든 행은 올바른 값을 경고하지만 정의되지 않은 값을 반환합니다.

자바 스크립트 함수를 문자열 또는 모든 일반 값의 반환 값으로 바꾼다면 잘 작동합니다.

나는이 모든 것이 빠져있는 바보 같은 뭔가가 있어야한다고 생각합니다. 어떤 도움을 많이 주시면 감사하겠습니다. 더 많은 정보가 필요하시면 알려 주시기 바랍니다 (예 : datatables과 같은 플러그인에서 실행되는 문제 해결이 실망 스러울 수 있음). 감사.

+4

에 오신 것을 환영합니다! 너는 그렇게 할 수 없다. – SLaks

+0

사람들이 [api] (http://api.jquery.com/jquery.post)를 읽지 않는 것 같습니다. – zzzzBov

+0

나는이 질문에 대해 죽을 것이라고 생각했습니다. 나는 아직도 jquery/javascript에 꽤 새로 왔고 약간의 피드백을 얻으려고했다. 시행 착오로 더 잘 배웁니다. 불쾌하게해서 죄송합니다. – chapman84

답변

3

$.post은 익명 콜백 함수의 반환 값을 반환하지 않으므로 전달 된 익명 콜백 함수의 세 번째 인수로 전달됩니다.

Ajax가 비동기 적이기 때문에 $.post을 반환하기 전에 콜백 함수가 실행됩니다.

데이터가 서버에서 다시 가져올 때 무언가를하고 싶다면 콜백 기능을 수행해야합니다 (또는 다른 기능을 호출하십시오).

이 다음 작동하지 않을 것과 같은 이유이다 : ** 비동기 **의 놀라운 세계에

var were_you_expecting_sunshine = $('button').click(function() { 
    return "sunshine"; 
}); 
+0

감사합니다. 내가하고있는 일을 성취 할 수있는 몇 가지 다른 방법이 있습니다. 나는 단지 땜질을하고 있었고, 나는 값을 경고 할 수는 있지만 사용하지 않을 수 있다는 사실을 배제했다. Ajax - 비동기, 의미가 있습니다. – chapman84

관련 문제