배열 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
이렇게 하셔도 될것 같습니다.
$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' />";
}