버튼 클릭시 하나의 버튼에만 반응이일어나고.... 채택완료

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 포인트

36번줄 근처

asort($entrys[$dirname[$i]]); << 추가

foreach( $entrys[$dirname[$i]] as $img ) {

여기 아래 더 간략하게 코딩한거 있었는데 삭제됐네요....

저 코드는 처음에 이미지 가져오는 루프하나로 끝날수 있어요.

근데 그렇게 하면 이해하는데 어려울까봐 따로 처리하긴했는데

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

답변에 대한 댓글 2개

아니에요 고양이망토님이 적어주신 코드 이해하기 쉽게 되어있어요 이걸로 제가 변경은 못하겠지만 해석은 어느정도 가능해요 감사합니다 정망 이렇게 신경써주셔서 감사합니다
전 중국과 무역업을 하고있습니다^^;; 뭐 이런쪽에 관심있으시면 말씀하세요

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

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개

^^:;; 고양이 망토님 죄송 그런데 이미지 1.jpg,2.jpg 이렇게 숫자가 낮은거에서 높은 걸로 순서되로 폴더안에 있는 걸 보여지게 할수는없나요? 정말 죄송합니다
공부 열심히하겠습니다

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

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

로그인
🐛 버그신고