2013-02-21 6 views
0

jQuery, Ajax 및 PHP를 통해 SQL 데이터베이스에서 데이터를 가져 오려고합니다. $ 옵션, $ : 여기 jQuery, Ajax 데이터베이스에서 데이터 가져 오기

는 jQuery를 코드

$.ajax({ 
    url: 'OpenQuiz.php', 
    data: '', 
    dataType:'json', 
    success: function(data) { 
     var one = data[0]; 
    } 
} 

$(document).ajaxComplete(function(event,request,settings) { 
    alert("check"); 
} 
여기

"OpenQuiz.php"라는 PHP 파일의 끝 부분에있는 JSON 인코딩 라인

echo json_encode($QuizName); 
echo json_encode($options); 
echo json_encode($votes); 
echo json_encode($row_num); 
echo json_encode($percentage); 
echo json_encode($TruncPercentage); 

주의 사항이있다 $ Percentage 및 $ TruncPercentage는 모두 2 차원 배열입니다. $ row_num은 정수입니다. $ Quiz_Name은 (는) 1 차원 배열입니다.

"확인"알림 상자가 나타나기 때문에 jQuery가 제대로 실행되고 ajax 요청이 호출되는 것을 알았습니다. 문제는 변수가 전송 된 후 변수에 액세스하는 방법을 모른다는 것입니다. 나는 그것이 데이터 [0]와 관련이 있다는 것을 알고 있지만 "데이터 [0]"이 의미하는 것이나 그것이 무엇을 의미하는지 이해하지 못합니다. 기본적으로 PHP 파일에서 json_encode를 사용하여 보낸 변수에 액세스하는 방법은 무엇입니까?

답변

1

data [0]은 반환 된 배열의 첫 번째 json_encoded 항목입니다. 모든 것을 별도로 json_encode해서는 안되며 배열을 만들고 json_encode this를 작성해야합니다. 데이터와 각 항목에 대한 등등

success: function(data) { 
    var qn = data.QuizName, 
     opt = data.options; 
} 

그리고 [무엇이든] 및 [무엇이든] 당신은 배열에 준 항목의 이름 인 :

$items = array('QuizName'=>$QuizName,'options'=>$options, ... ,'TruncPercentage'=>$TruncPercentage); 

echo json_encode($items); 

는 그런 다음에 검색 할 수 있습니다.. 내가 원래 인덱스 (data [0])로 검색한다고 말했지만 코드를보다 maintainable하도록 명시 적으로 검색하는 것을 선호합니다. 문서의 상단에 서버를 강제 것이라고 배치

header('Content-type: application/json'); 

:

보조 노트로

, 당신은 단순히 PHP 측에서 제대로 헤더를 설정하여 Ajax 호출에 datatype:'json' 선언을 제거 할 수 있습니다 페이지를 json으로 인식합니다. jQuery가 찾는 것보다 훨씬 일관되고 명시 적입니다.

+0

PHP에서 변수 배열 (다른 유형)을 만드는 방법은 무엇입니까? –

+0

간단한 답변으로 내 대답을 편집했습니다. – PlantTheIdea

+0

의미가 있습니다. $ QuizName은 2 차원 배열이므로 배열에서 하나의 값에 액세스하려면 data.QuizName [x] [y]를 사용해야합니다. 여기서 x와 y는 2 차원 배열에서 값의 위치를 ​​정의합니까? –

관련 문제