2014-06-21 2 views
-1

저는 여러 개의 이미지를 반환하는 간단한 데이터베이스 쿼리를 만들고 있습니다. 이러한 이미지는 한 번에 하나의 이미지를 표시하고 이미지를 실행하는 onclick 함수를 사용하는 javascript 갤러리와 함께 PHP 변수에 저장됩니다. 그 작동하지, 제발 도와주세요!이미지 위치에 php 변수 사용하기, onclick을 사용하여 이미지 갤러리를 실행하십시오.

내 데이터베이스 쿼리는 각각 변수에 넣은 이미지를 반환합니다.

페이지 자체 갤러리 섹션에
$img1  = $row['img1']; 
$img2  = $row['img2']; 
$img3  = $row['img3']; 

$images = array($img1,$img2,$img3); 

잘 첫 번째 이미지

<div id="showImage"> 
<img src= " <?php echo "$images[0]" ?>" id="gallery"> 
<div id="rightHolder"><img onClick="Gallery(1)" src="images/arrow-right.png"></div> 
<div id="leftHolder"><img onClick="Gallery(-1)" src="images/arrow-left.png"></div> 
</div> 

를 표시하지만 자바 스크립트 못해 (내가 배열을 통해 실행하는 것이 더 쉬울 수 있어야 생각했기 때문에) 변수는 배열에 넣어 up date는 $ images onclick의 배열 키이므로 두 번째 이미지가로드되지 않습니다.

var imageCount = 1; 
var totalImage = 3; 

function Gallery(x) { 
var image = document.getElementById('gallery'); 
imageCount = imageCount + x; 
if(imageCount > totalImage){imageCount = 1;} 
if(imageCount < 1){imageCount = totalImage;} 
image.src = "<?php echo $images["+ imageCount +"]?>"; 
} 

답변

0

이 작업을 수행하지 못할 : image.src = "<?php echo $images["+ imageCount +"]?>";

JS는 브라우저에서 실행됩니다. JS에는 PHP 데이터가 없습니다.

당신은 당신의 JS 파일에 이런 식으로 뭔가를 시도 할 수 :

image.src = images[imageCount]; 

그것이 무엇을하는 것은 그것이 당신의 필요이다 : 당신이 수행하여 이미지를 호출 할 수 있습니다

var images = "<?php echo implode(",", $images); ?>"; 
images = images.split(","); 

JS의 조각 PHP 배열은 쉼표로 구분 된 문자열로 만듭니다. 그 문자열은 J에서 배열이되는 쉼표로 분리됩니다.

+0

감사합니다. Matt. 나는 그것을 시도하고 그것은 작동하지 않습니다. 나는 왜 당신의 JS가 $ 이미지를 얻을 수 있을지 이해하지 못한다. – tadhg

+0

그 이유는 액세스하려는 키가 php에서 사용할 수없는 동안 JS에 설정된 키를 사용하여 PHP 배열 데이터를 출력하려고하기 때문입니다. $ images [ "+ imageCount +"]에 액세스하려고 시도했지만 imageCount가 PHP에서 사용할 수없는 것은 js 변수입니다. 그래서 JS 전체 PHP 배열을 출력 한 다음 js 변수를 사용하여 js 배열에 액세스해야합니다. Js와 PHP가 서로 다른 단계에서 실행된다는 것을 이해하십시오. 변수를 다른 변수에서 사용할 수 없습니다. Js 브라우저에서 실행, 서버에 PHP를 – Matt

+0

다시 감사 매트. 그것은 PHP 변수 내 이미지 위치를 저장했기 때문에 작동하지 않을 것입니다. 그래서 js var 이미지는 PHP 변수 $ img1, $ img2, $ img3의 배열입니까? – tadhg

관련 문제