테스트 사이트 - 개발 중인 베타 버전입니다

전체 이미지 노출되게 좀 채택완료

zkdlf 8년 전 조회 2,121

소스 작성하고있는데 폴더에는 사진을 3장이 들어가있는데 한장의 이미지만 출력이되네요

그리고 jpg제목을 1,2,3으로 정해놨는데 랜덤으로 뜨고 정해진되로 출력되고 폴더안에있는걸 다 나오게할려면 어떻게해야하나요?

 

</p><p>
<?  </p><p>$path = "./ddp";   
$entrys = array();  
$dirs = dir($path);    
while(false !== ($entry = $dirs->read())){  
  if(($entry != '.') && ($entry != '..')) {   
    if( !is_dir($path.'/'.$entry) ) {  
      $entrys[] = $entry; 
    }  
  }  
} </p><p>$dirs->close(); 
?>  </p><p>
<script>  
function tab_change(num) { 
    var tab_content; 
    for (var i=1; i<=9; i++) 
    { 
        tab_content = document.getElementById("tab_content"+i); 
        if (i==num) { 
            tab_content.style.display = ""; 
        } 
        else {  
            tab_content.style.display = "none"; 
        } 
    }  
} </p><p>
</script> </p><p></div> </p><p><div id="shop"></p><p>    <input type="button" name="tab_radio" value="DDP" style="width:115px"  onclick="tab_change(1)" /></p><p></div>
</div></p><p><hr> 
<? 
$i = 1; 
foreach($entrys as $img){  
?>  
<div id="tab_content1" style="position:absoulte; display:none"><img src="./ddp/<?=$img?>" /></div> 
<?   
}   
?>  
     </p><p>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
IZSOFT
8년 전

45번줄

tab_content.style.display = "block"; 
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

z
zkdlf
8년 전
그런데 저번에는 버튼하나당 사진 하나가 출력된는데 지금은 버튼은 사진 장수만큰 생성되고 사진이 3장이면 버튼도 3개가 나오고 단지 버튼 하나에 3장의 사진이 모두 표현은 됩니다^^;;;
그런데 버튼 세개가 다 똑같은 사진 세장이 표현이 되고있어요...
버튼 하나에 사진이 나와야하는데... ^^;; 마지막 하나 부탁드립니다

[code]
<?

$path = "./ddp";

$entrys = array();

$dirs = dir($path);

$cnt = 0;

while(false !== ($entry = $dirs->read())){

if(($entry != '.') && ($entry != '..')) {

if( !is_dir($path.'/'.$entry) ) {

$entrys[] = $entry;

$cnt++;

}

}

}

$dirs->close();

?>

<script>

function tab_change() {

var tab_content;

for (var i=1; i<=<?=$cnt?>; i++)

{

tab_content = document.getElementById("tab_content"+i);


tab_content.style.display = "block";

}

}

</script>

<div id="shop">

<? for( $i=1; $i <= $cnt; $i++ ) { ?>

<input type="button" name="tab_radio" value="DDP" style="width:115px" onclick="tab_change(1)" />

<? } ?>

</div>

</div>

<hr>

<?

$i = 1;

foreach($entrys as $img){

?>

<div id="tab_content<?=$i++?>" style="display:none"><img src="./ddp/<?=$img?>" /></div>

<?

}

?>
[/code]
z
zkdlf
8년 전
해결했습니다 감사합니다^^;;

<? for( $i=1; $i <= 1; $i++ ) { ?> 1로 바꾸니 되네요

댓글을 작성하려면 로그인이 필요합니다.

IZSOFT
8년 전
처음에는 이미지가 안보였다가 버튼을 누르면 전부 보이게 하고 싶은거면
</pre><pre><?  
$path = "./ddp";   
$entrys = array();  
$dirs = dir($path);    
while(false !== ($entry = $dirs->read())){  
  if(($entry != '.') && ($entry != '..')) {   
    if( !is_dir($path.'/'.$entry) ) {  
      $entrys[] = $entry; 
    }  
  }  
} 
$dirs->close(); 
?>  

<script>  
function tab_change() { 
    var tab_content; 
    for (var i=1; i<=9; i++) 
    { 
        tab_content = document.getElementById("tab_content"+i); 
        tab_content.style.display = "none"; 
    }  
} 

</script> 
</div> 
<div id="shop">
    <input type="button" name="tab_radio" value="DDP" style="width:115px"  onclick="tab_change()" />
</div>
</div>
<hr> 
<? 
$i = 1; 
foreach($entrys as $img){  
?>  
<div id="tab_content1" style="display:none"><img src="./ddp/<?=$img?>" /></div> 
<?   
}   
?>  </pre><pre>
tab_change 함수에서 for문은 제가 처음 알려준 소스대로 $cnt 선언하고 이걸로 쓰셔야 이미지 개수와 상관없이
스크립트 오류가 안뜹니다. for문을 고정으로 돌리면 이미지 출력하는 갯수와 안받아서 오류발생
     
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

z
zkdlf
8년 전
저의 무식을 용서해주세요 ㅋㅋ... 아무리해도 ...안나와요
밑에처럼하닌까 버튼이 사진장수만큼 생성되고 눌렀는데 사진이 출력이안되네요 한개의 버튼에 여러장이 출력되게끔하고싶어서요

[code]
<?

$path = "./ddp";

$entrys = array();

$dirs = dir($path);

$cnt = 0;

while(false !== ($entry = $dirs->read())){

if(($entry != '.') && ($entry != '..')) {

if( !is_dir($path.'/'.$entry) ) {

$entrys[] = $entry;

$cnt++;

}

}

}

$dirs->close();

?>

<script>

function tab_change() {

var tab_content;

for (var i=1; i<=<?=$cnt?>; i++)

{

tab_content = document.getElementById("tab_content"+i);



tab_content.style.display = "none";

}

}



</script>

<div id="shop">
<? for( $i=1; $i <= $cnt; $i++ ) { ?>
<input type="button" name="tab_radio" value="ddp" style="width:115px" onclick="tab_change(1)" />
<? } ?>
</div>
</div>
<hr>
<?
$i = 1;
foreach($entrys as $img){
?>
<div id="tab_content1" style="display:none"><img src="./ddp/<?=$img?>" /></div>
<?
}
?>

[/code]

댓글을 작성하려면 로그인이 필요합니다.

IZSOFT
8년 전

</p><p><span style="font-size: 11pt;"><?  </span></p><p><span style="font-size: 11pt;">$path = "./ddp";   </span></p><p><span style="font-size: 11pt;">$entrys = array();  </span></p><pre>$dirs = dir($path);    
while(false !== ($entry = $dirs->read())){  
  if(($entry != '.') && ($entry != '..')) {   
    if( !is_dir($path.'/'.$entry) ) {  
      $entrys[] = $entry; 
    }  
  }  
} 
$dirs->close(); </pre><pre>foreach($entrys as $img){  
?>  
<div id="tab_content1"><img src="./ddp/<?=$img?>" /></div> 
<?   
}   
?> 
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

IZSOFT
8년 전

스크립트에 있는 tab_change 이 함수 이미지 한장씩 보여주게 하는거예요. tab_change(1) 이렇게 호출을 하면 function tab_change(num) 에서 num에 1이 들어가고 i 가 1부터 9까지 도는데 tab_content = document.getElementById("tab_content"+i); 여기가 id 값이 tab_content1 ~ tab_content9까지 가져와서 num 받은 값하고 i 가 같으면 tab_content 레이어 보여주고 다르면 숨겨버리는거예요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

IZSOFT
8년 전

print_r($entrys);

$dirs->close();

이렇게 $entrys에 파일명이 배열로 제대로 들어왔는지 확인하시구요.

 

18번 줄에 for (var i=1; i<=9; i++) 9까지 도는데 이미지는 3장밖에 없잖아요?

그럼 처음 tab_change 함수를 호출할때 i가 4가 되면 해당 div가 없습니다.

그래서 tab_content.style.display 로 접근하게 되면 스크립트 오류가 뜹니다.

어제 질문에 그래서 이부분도 $cnt로 오류 안뜨고 맞춰서 코딩해준건데. 싹 걷어버리셨네요? ㅋㅋ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

z
zkdlf
8년 전
아니요^^;;; 했었어요 말씀하신데로요 그런데
버튼이 111,222,333 이렇게 생성이 되더라고요 그리고 111버튼을 누르면 한장의 이미지 222누르면 또 다른 한장의 이미지 이렇게 뜨더라고요... 그래서 cnt가 이 버튼을 생성시켜서 각 버튼에 한장의 사진만 나오게 하나해서 다시 바꿨는데도 똑같이 한장만 출력되더라고요^^;;
z
zkdlf
8년 전
이렇게하닌까 순서가 이렇게 나오네요
print_r($entrys);
Array ( [0] => 15.jpg [1] => 14.jpg [2] => 13.jpg )

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인