버튼 클릭시 하나의 버튼에만 반응이일어나고.... 채택완료
2가지 버튼을 만들었는데 한가지에만 반응이일어나고 나머지는 그 한가지에서 출력된 이미지로만 보이네요...
밑에 $path = "./ddp" ; 여기에 폴더 지정을 ddp로만 해서 버튼한가지만 적용이되는거같아서
$path = "./ddp" ;
$path = "./food ";
또는
$path = "./ddp" ; "./food ";
이렇게 했는데 에러가 뜨네요....
Copy
<? $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 <= 1; $i++ ) { ?> <input type="button" name="tab_radio" value="DDP" style="width:115px" onclick="tab_change(1)" /> <input type="button" name="tab_radio" value="food" style="width:115px" onclick="tab_change(2)" /> <? } ?> </div> </div> <hr> <? $i = 1; foreach($entrys as $img){ ?> <div id="tab_content<?=$i++?>" style="display:none"><img src="./ddp/<?=$img?>" /></div> <? } ?> <? $i = 1; foreach($entrys as $img){ ?> <div id="tab_content<?=$i++?>" style="display:none"><img src="./food/<?=$img?>" /></div> <? } ?>
답변 2개
채택된 답변
+20 포인트
9년 전
36번줄 근처
asort($entrys[$dirname[$i]]); << 추가
foreach( $entrys[$dirname[$i]] as $img ) {
여기 아래 더 간략하게 코딩한거 있었는데 삭제됐네요....
저 코드는 처음에 이미지 가져오는 루프하나로 끝날수 있어요.
근데 그렇게 하면 이해하는데 어려울까봐 따로 처리하긴했는데
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
zkdlf
9년 전
아니에요 고양이망토님이 적어주신 코드 이해하기 쉽게 되어있어요 이걸로 제가 변경은 못하겠지만 해석은 어느정도 가능해요 감사합니다 정망 이렇게 신경써주셔서 감사합니다
댓글을 작성하려면 로그인이 필요합니다.
9년 전
Copy
<?error_reporting(E_ALL);ini_set("display_errors", 1);$dirname = array("DDP", "food"); $entrys = array();foreach( $dirname as $val ) { $path = "./". $val ; $entrys[$val] = array(); if( is_dir($path) ) { $dirs = dir($path); while( false !== ($entry = $dirs->read()) ) { if(($entry != '.') && ($entry != '..')) { $entrys[$val][] = $entry; } } $dirs->close(); }}?><div id="shop"><?for( $i=0, $cnt=count($dirname); $i < $cnt; $i ++ ) {?> <input type="button" name="tab_radio" value="<?=$dirname[$i]?>" style="width:115px" onclick="tab_change(<?=($i+1)?>)" /> <?}?></div><hr><? for( $i=0; $i < $cnt; $i++ ) {?> <div id="tab_content<?=($i+1)?>" style="display:none"><? foreach( $entrys[$dirname[$i]] as $img ) {?> <img src="./<?=$dirname[$i]?>/<?=$img?>" /><? }?></div><?}?> <script> function tab_change(no) { var tab_content; for (var i=1; i<=<?=$cnt?>; i++) { tab_content = document.getElementById("tab_content"+i); if( no == i ) { tab_content.style.display = "block"; } else { tab_content.style.display = "none"; } } }</script>
이분 정말 사람 고생시킴... 그냥 소스 뭐가 잘못된거지 묻기전에 내가 정확히 무엇을 어떻게 구현하고 싶은데 뭐가 문제인지 물어보세요... 그래야 안헤매죠..
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
zkdlf
9년 전
^^:;; 고양이 망토님 죄송 그런데 이미지 1.jpg,2.jpg 이렇게 숫자가 낮은거에서 높은 걸로 순서되로 폴더안에 있는 걸 보여지게 할수는없나요? 정말 죄송합니다
공부 열심히하겠습니다
공부 열심히하겠습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인