2011-01-08 4 views
3

나는 다음과 같은 방법으로 $의 .post()를 사용하는 것을 시도하고 반환을위한 JQuery와 $의 .post()를 사용하여 :여러 값

$.post("file.php", { file_id: $(this).val()}, function(data){...} file.php 다음 데이터베이스 쿼리를 수행하고 제목과 함께 배열을 반환 설명 및 이미지 참조.

내가하고 싶은 일은 각각의 양식 필드에 .val()을 업데이트 할 수 있습니다. 나는 하나의 변수에이 작업을 수행하는 방법을 이해하고, 그냥 것 다음

$.post("file.php", { file_id: $(this).val()}, function(data){ 
    $('#title').val(data); 
} 

하지만, 데이터가 별도의 변수 중 하나이나 배열로 JQuery와의 인식으로 돌려받을 수 있나요 어떻게? 사전에

감사

답변

7

the docs for $.post를 참조하십시오. 네 번째 매개 변수는 dataType입니다. 반환 데이터가 JavaScript 객체 또는 배열로 파싱되도록이 값을 JSON으로 설정할 수 있습니다. 당신의 file.php 파일에서

$.post(
    "file.php", 
    { file_id: $(this).val() }, 
    function(data){ $('#title').val(data.title); $('#para').val(data.paragraph); }, 
    'json'); 

, 당신은 jQuery를이 데이터가 JSON 있어야하는데 알 수 있도록) (헤더를 포함해야합니다

<?php 
$return_data=array('title'=>'Fishes Go To Market','paragraph'=>'Lots of stuff'); 

header('Content-Type: application/json'); 
echo json_encode($return_data); 
exit(); 

처럼 뭔가를 할 수 있으며,로 json_encode 때문에 사용 형식이 올바르게 지정되었습니다.

자세한 내용은 json_encode 문서를 참조하십시오 (docs on header). Remeber 헤더() 전에 json_encoded 데이터를 인쇄 할 다른 출력을 가질 수 없습니다. 헤더 또는 JSON은 유효하지 않습니다.

+0

완벽하게 작동했지만 코드에 오타가 있다고 생각합니다 ($ return_data || return_array) 감사합니다! – TH1981

+0

죄송합니다. 나는 후세를 위해 그것을 편집 할 것이다. 그것이 도움이 되었기 때문에 다행! – JAL

3

가장 쉬운 방법은 JSON으로 값을 다시 전달하는 것입니다. 배열을 서버의 JSON으로 변환해야합니다 (많은 숫자가 server-side libraries available for this). 그리고 같은 네 번째 매개 변수를 추가하여 JSON으로 데이터를 반환하기 위해 .post() 방법을 수정 : 당신은 다음 쉽게와 같은 변수를 채울 수 있습니다

$.post("file.php", { file_id: $(this).val()}, function(data) { ... }, "json"); 

:

$('#title').val(data.title); 
$('#description').val(data.description);