2014-03-04 2 views
0

저는 JSON/Javascript 초보자이며 이러한 문제가 있습니다. 경고가 위의 폼 객체 개체

의 출력을 인쇄

function imageSlider(imagesArray) { 
alert(imagesArray); 
} 

: 내 자바 스크립트에서

echo '<img id="Next" src="misc/arrow_right.png" onclick="imageSlider(' . json_encode($images) . ')" >'; 

를 다음과 같이 내 PHP 스크립트 내에서

나는 자바 스크립트로 PHP 배열을 전달 해요

문제는 내가 원래 json_encoded 데이터를 추출 할 수 있도록이 개체를 '분해'하거나 분해하는 것이 최선인지 모르겠다. 원래 배열의 구조

{ "1": "images1.jpg", "2": "images2 문자열이 나는 또한 alert(JSON.stringify(imagesArray)) 시도 ["image1", "image2",...]

을 즉 내가이 문자열을 얻을 수있는 간단한 숫자 인덱스 배열입니다. JPG ","3 ":"images3.jpg ","4 ":"images4.jpg ","5 ":"images5.jpg "}

내가 가장하는 방법을 잘 모르겠습니다 어쨌든 내 이미지 이름과 자바 스크립트에서 배열 인덱스. 예 : 오브젝트에서 1과 images1.jpg을 추출하거나 '문자열'오브젝트를 실제 javascipt 배열로 변환하는 방법이 있다면 ...? 감사합니다.

+0

alreaady는 havascript 개체입니다. json = javascript obj. 표기법. 실제로 작동하는지 확인하려면 __imagesArray [1] __을 시도하십시오. –

답변

0

당신은 자바 스크립트 객체로 JSON 문자열을 구문 분석하는 유명한 json2.js를 사용할 수 있습니다. 포함 json2.js 후 사용할 수 있습니다

imageArray = JSON.parse(encodedJson); 

니어 난 당신이 JSON 인코딩 된 객체가있는 경우 이미 자바 스크립트 객체 진정한 당신의 예에서 생각합니다.

console.log(imageArray); 

을 사용하면 imageArray의 내용을 볼 수 있습니다. 그리고 당신은 같은 개체의 속성에 액세스 할 수 있습니다

alert(imageArray[1]) //this will alert "image1.jpg" 

하지만 난 당신이 imageArray 배열이 아님을 알아야하며, 그것은 자바 스크립트 객체입니다. 그리고 키가 숫자 인 경우 점 표기법을 사용하여 자바 스크립트 객체의 값에 도달 할 수 없습니다 (예를 들어). 따라서 imageArray.1을 사용하여 "image1.jpg"에 도달 할 수 없으므로 위의 코드와 같이 숫자가 숫자 인 경우 대괄호를 사용해야합니다.

imageArray = { "i1": "image1.jpg", "i2": "image2.jpg" } //this way you can use imageArray.i1 to get "image1.jpg" 
+0

굉장한 '플로피 디스크'. 고마워.당신은 숫자 키에 대한 나의 다른 무지를 발견했습니다. 나는 처음에 기쁨없이 imageArray.1을 시도했습니다. 매우 감사합니다. – Ceasar

+0

:) 도와 줘서 고맙습니다. –

0
var imgs=eval('('+imagesArray+')'); 

그러면 imgs 개체에 액세스 할 수 있습니다.

이 더 이상 인덱스 배열 아니라는 것을 명심하지만, 키 - 값 저장소 :

for (key in imgs){ 
    var img=imgs[key]; 
    console.log(img); 
} 
0

당신은 가까웠다 : 당신은 점 표기법을 사용하려는 경우와 같은 열쇠 문자열을해야합니다.

function imageSlider(imagesObject) { 

    //access it like an Array (note the quotes around 1), no other changes needed. 
    imagesObject["1"]; 

}