채택완료

if else 문법 질문 드려봅니다~ 도움 부탁드립니다..

문법을 너무 몰라 하나하나 자판 두들기며 익히고 있네요..ㅠㅠ
여분필드 15와 16값이 여부에 따라 출력을 달리 하고 있는데요..
전화번호 필드이다 보니 입력을 안하면 값에 --만 남아 들어가게 되어 이런 식으로 처리하고 있습니다.
 
만약 15값이 있고 16값이 -- 라면
15만 출력
15값이 -- 고 16값이 있다면
16만 출력
15값과 16값이 있으면
15,16 둘다 출력
15값이 -- 이고 16값이 -- 라면
아무것도 출력하지 않는다
 
이런 결과가 나와야 하는데 아래 코드를 짜보니 위 세경우는 제대로 출력되었는데
마지막 15,16값이 -- 일때
아무것도 출력이 안되야 하는데 15가 출력이 되더라구요..
 
어느 부분이 잘못되었는지 고수님들이 가르침 부탁드립니다~
 
 
 
Copy
<? if($view['wr_15'] && $view['wr_16'] == "--") { ?><tr>    <td height=30 class=mw_basic_view_title>  <?=mandooName(15)?> : <span style="color:#888;"><?=mandooPi(15)?></span>    </td></tr>
<? } else if($view['wr_15'] == "--" && $view['wr_16']) { ?><tr>    <td height=30 class=mw_basic_view_title>  <?=mandooName(16)?> : <span style="color:#888;"><?=mandooPi(16)?></span>    </td></tr>
<? } else if($view['wr_15'] && $view['wr_16']) { ?><tr>    <td height=30 class=mw_basic_view_title>  <?=mandooName(15)?> : <span style="color:#888;"><?=mandooPi(15)?></span>    </td></tr><tr>    <td height=30 class=mw_basic_view_title>  <?=mandooName(16)?> : <span style="color:#888;"><?=mandooPi(16)?></span>    </td></tr>
<? } else if($view['wr_15'] == "--" && $view['wr_16'] == "--") { ?>
<? } ?>
 
|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트
if ~ else if 조건을 잘 따져 보면 되겠지만 어렵게 생각 할 것 없이 방법 자체를 바꾸세요
코드를 저렇게 할 필요가 없습니다
wr_15가 있으면 해당 내용을 출력하고 wr_16이 있으면 그것에 해당하는 내용을 출력하고
둘다 없으면 그것에 해당하는 조건을 출력하는 아주 단순한 방법입니다
쉬운 방법이 있는데 어렵게 할 이유가 없을테죠
아래처럼 해보세요

$wr15= str_replace('-','',trim($view['wr_15']));
$wr16= str_replace('-','',trim($view['wr_16']));

<?if($wr15){?>
<tr>
 <td height=30 class=mw_basic_view_title>
 <?=mandooName(15)?> : <span style="color:#888;"><?=mandooPi(15)?></span>
 </td>
</tr>
<?}?>

<?if($wr16){?>
<tr>
 <td height=30 class=mw_basic_view_title>
 <?=mandooName(16)?> : <span style="color:#888;"><?=mandooPi(16)?></span>
 </td>
</tr>
<?}?>

<?if(!$wr15 && !$wr16){?>
읍따
<?}?>




답변에 대한 댓글 1개

아~ 안그대로 if 문에 ! 는 뭔가 하고 한참 들여다보고 있던 중이었습니다.
이제야 문법의 ㅁ 하나 알아가고 있는 중이라서요...
말씀하신 대로 if~else 지저분하게 안쓰고 trim 하고 replace 로 해결이 되는군요..
나머진 딱 정해진 경우에만 출력하게끔 단순화되구요..

낮은 지식에 한삽 더 올릴 수 있는 기회 감사드립ㄴ디ㅏ ^^
방금 또 몇번 테스트하다가
 
<? } else if($view['wr_15'] == "--" && $view['wr_16'] == "--") { ?>
 
이 구문을 제일 앞으로 돌려
<? if($view['wr_15'] == "--" && $view['wr_16'] == "--") { ?>
이렇게 시작하고 나머지 뒤를
<? } else if ... { ?>
나머지 내용으로 바꾸니 적용이 됩니다..
 
결과적으로 답을 찾아냈는데
왜 그런지 설명해주실 고수님 도움이 필요합니다.
똥닦고도 찜찜한 기분입니다 ㅠㅠ

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