2012-07-06 3 views
1

PHP로 만든 배열을 검색하고 아약스를 통해 JS 스크립트로 다시 보내려고합니다.아약스에서 php 배열을 검색

값을 표시하는 방법을 모르겠습니다.

서버 측 PHP

$r=array(); 
$r[] = 'aaa'; 
$r[] = 'bbb'; 
$r[] = 'ccc'; 


echo json_encode($r); 

내 JS는

....ajax codes.... 

var p=document.getElementById('text'); 

if (xmlhttp.readyState==4 && xmlhttp.status==200){ 

    var r=xmlhttp.responseText; 

    for (var i=0; i<r.length; i++){ 
     p.innerHTML= r[i] + '<br>'; 
    } 

}

는 출력 내가 대신 $ 아약스의 자바 스크립트를 사용하려면

a 
a 
a 
b 
b 
b 
c 
c 
c 
//but I want these 
aaa 
bbb 
bbb 

될 것입니다 이것을 완료하십시오. 어떤 아이디어? 고마워.

+0

아약스가 없으면 어떻게 자바 스크립트를 사용하여 서버에서 결과를 얻을 수 있습니까? 귀하의 질문을받지 못했을 수도 있습니다. –

+0

전체 코드를 게시하지는 않았지만 서버에 아약스를 보내고 PHP 배열을 만들어 내 JS로 다시 보냈습니다. 내 문제는 이상한 결과를 낳고있다. – FlyingCat

+0

'xmlhttp.responseText'에서 얻은 응답을'JSON.parse()'해야합니다. jQuery처럼 자체적으로 JSON을 디코딩하지는 않습니다. – lanzz

답변

2

이전에 json 문자열을 구문 분석해야합니다. JSON.parse. (검증되지 않은) 시도 :

if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
    var r=JSON.parse(xmlhttp.responseText); 
    for (var i=0; i<r.length; i++){ 
     p.innerHTML= r[i] + '<br>'; 
    } 

=== 업데이트 ===

당신은 아주 오래된 브라우저를 지원해야하는 경우 (예를 들어, 작거나 다음 IE7과 동일)이 Crockfords JSON2parser 또는 jQuery 같은 라이브러리를 사용한다 (거대한 lib 훨씬 더 많은 기능).

+0

구형 브라우저, 특히 <8. –

3

서버에서 클라이언트로 배열을 전송하는 가장 쉬운 방법은 JSON을 사용하는 것입니다. 다음은 JSON의 배열을 반향하는 데 사용할 수 있습니다

echo(json_encode($array)); 

자세한 내용은 here를 참조하십시오.

decodedjson = JSON.parse(ajax.response); 

는 아약스 호출에서 클라이언트 측 코드를 포장하는 것을 잊지 마세요 :

그런 다음 클라이언트 측에서 동일한 배열을 생성하는 JSON을 디코딩하기 위해 다음과 같은 기능을 사용할 수 있습니다.

희망이 도움이됩니다.

관련 문제