배열 for문으로 이미지 출력하기 질문...?

배열 for문으로 이미지 출력하기 질문...?

QA

배열 for문으로 이미지 출력하기 질문...?

본문


<?
   $items = explode(',',$view['wr_8']);   

   for( $i = 0; $i < count($items); $i++){
    if($items[$i]=="AAA"){
     echo "<img src='../img/home/1_ok.png' />";
    }else{
     echo "<img src='../img/home/1_no.png' />";
    }
    if($items[$i]=="BBB"){
     echo "<img src='../img/home/2_ok.png' />";
    }else{
     echo "<img src='../img/home/2_no.png' />";
    }
    if($items[$i]=="CCC"){
     echo "<img src='../img/home/3_ok.png' />";
    }else{
     echo "<img src='../img/home/3_no.png' />";
    }
    if($items[$i]=="DDD"){
     echo "<img src='../img/home/4_ok.png' />";
    }else{
     echo "<img src='../img/home/4_no.png' />";
    }
  ?>

 

 

체크박스 항목이 4가지가 있습니다.

AAA , BBB , CCC , DDD

위 4가지 항목중 자유롭게 체크하여

배열로 받아서 이미지로 출력하고 싶습니다.

 

AAA가 선택되어 있으면 1_ok 이미지..

AAA가 선택되어있지 않으면 1_no 이미지...

 

이런식으로 체크박스 선택을 어찌하였던

이미지는 무조건 4개가 나오도록 ,

그리고 체크가 되어 있다면 ok 이미지로 구현하고 싶은데..

 

그냥 if else로 했더니 전부 출력되어버리네요...

 

어떻게 식을 짜야할까요?

 

이 질문에 댓글 쓰기 :

답변 2

이미지의 파일명을 1_ok 이나 1_no 방식으로 하시지 마시고

a_ok 나 aaa_ok 나 aaa_no 방식으로 해서 하는게 좋을것 같습니다.

그럼 코드가 굉장히 간결해질것 같네요~

 

또는 1번 선택이면 1번 이미지 이렇게 가는방식이 좋습니다.

 

4가지가 고정이고 순서대로 한다면

 

   $items = explode(',',$view['wr_8']);   

   if ($items[0] == "AAA") { echo "<img src='../img/home/1_ok.png' />"; } else { echo "<img src='../img/home/1_no.png' />"; }
   if ($items[1] == "BBB") { echo "<img src='../img/home/2_ok.png' />"; } else { echo "<img src='../img/home/2_no.png' />"; }
   if ($items[2] == "CCC") { echo "<img src='../img/home/3_ok.png' />"; } else { echo "<img src='../img/home/3_no.png' />"; }
   if ($items[3] == "DDD") { echo "<img src='../img/home/4_ok.png' />"; } else { echo "<img src='../img/home/4_no.png' />"; }

 

그냥 이렇게 하셔도...

 

아니면 선택을 0부터 이미지 파일도 0부터 라고 한다면

 

   $items = explode(',',$view['wr_8']);   

   for($i=0; $i<count($items); $i++){

    if($items[$i] == $i){ 
        echo "<img src='../img/home/".$i."_ok.png' />"; 
    }else{
         echo "<img src='../img/home/".$i."_no.png' />";
    } // if

 } //for

 

이렇게 하셔도 될것 같습니다.

음 친절하신 답변 감사합니다..

다만 문제가 하나 있는게...

체크박스에서 AAA,CCC,DDD를 선택한 경우에

배열 0번에 AAA, 1번에 CCC, 2번에 DDD가 들어가버려서

식이 어긋나버리네요 ㅠㅠ

체크박스를 다 선택하는 경우도 있고.. 1개만 선택하는 경우도 있고.. 1,3번만 선택하는 경우... 등등

여러가지 경우가 있어서 배열 위치가 고정되는 것은 아닙니다..

 

흠... 설명을 어떻게 해야할지 ㅠㅠ 모르겠네요..


$items = explode(",", $view['wr_8']);
for($i=0, $j=1; $i<count($items); $i++, $j++) {
    $st = $items[$i] == "" ? "no" : "ok";
    echo "<img src='../img/home/".$j."_".$st.".png' />";
}
답변을 작성하시기 전에 로그인 해주세요.
전체 123,636 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT