2013-10-27 5 views
0

PDO 객체를 javascript 배열로 변환하고 배열에서 키에 액세스하는 데 문제가 있습니다.pdo 객체를 javascript 배열로 변환

<script> var groups = new Array(); </script> 
<?php $groups = getGroups($_SESSION['userId']);    //turn group o 
while ($row = $groups->fetch()){ 
echo "<script> groups.push('" . json_encode($row) . "'); </script>"; 
} 
?> 

이 같은 배열 콘솔 경우

: 내가 지금처럼 키 중 하나를 액세스하려고 할 때

{"id":"5","teacherid":"1","name":"Honors","subject":"0","type":"custom","sid":"0","skillid":"0","grade":"8"} 

이 밖으로

for(var i = 0; i < groups.length; i++){ 
    console.log(groups[i]); 
    } 

내 콘솔 인쇄

for(var i = 0; i < groups.length; i++){ 
    console.log(groups[i].name); 
    } 

죄수에서 정의되지 않습니다. 올레.

위의 구문이 작동해야한다고 생각하는 게시물을 발견했습니다.

+0

문자열로 인코딩하고 있습니다. 다시 파싱해야합니다. whats'console.log (typeof groups [i]); ' – naveen

답변

-1

그룹 배열의 요소가 문자열이 아닌지 확인하십시오 (분석되지 않은 json). 이 경우 JSON.parse를 문자열에 사용하고 이름에 액세스를 시도 할 수 있습니다. 또는 서버에서 생성 할 때 객체 주위에 따옴표를 놓을 수도 있습니다.

+0

고마워, 아직 트릭을 했어. var parsedGroup = JSON.parse (groups [i])를 추가했습니다. 그런 다음 console.log (parsedGroup.name)에 의해 키를 호출합니다. – RyanY

+0

__may__ work가 무엇을 제안 하나, 문자열에 " '"가 있어야한다. 다시 깨질 것이라고 생각한다. json_encode()는 Javascript 객체의 자바 스크립트 코드를 __is__하는 문자열을 반환합니다. 그것을 사용하려면 RyanY처럼 따옴표로 묶을 필요는 없지만 그냥 사용하십시오. 내 대답을 보라. – Forbesmyester

1

이 줄 :로 json_encode는 이미 자바 스크립트 객체 있는지 만들면서

echo "<script> groups.push('" . json_encode($row) . "'); </script>"; 

echo "<script> groups.push(" . json_encode($row) . "); </script>"; 

로 변경해야합니다.

관련 문제