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

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

QA

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

본문

문법을 너무 몰라 하나하나 자판 두들기며 익히고 있네요..ㅠㅠ
여분필드 15와 16값이 여부에 따라 출력을 달리 하고 있는데요..
전화번호 필드이다 보니 입력을 안하면 값에 --만 남아 들어가게 되어 이런 식으로 처리하고 있습니다.
 
만약 15값이 있고 16값이 -- 라면
15만 출력
15값이 -- 고 16값이 있다면
16만 출력
15값과 16값이 있으면
15,16 둘다 출력
15값이 -- 이고 16값이 -- 라면
아무것도 출력하지 않는다
 
이런 결과가 나와야 하는데 아래 코드를 짜보니 위 세경우는 제대로 출력되었는데
마지막 15,16값이 -- 일때
아무것도 출력이 안되야 하는데 15가 출력이 되더라구요..
 
어느 부분이 잘못되었는지 고수님들이 가르침 부탁드립니다~
 
 
 

<? 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

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){?>
읍따
<?}?>




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

낮은 지식에 한삽 더 올릴 수 있는 기회 감사드립ㄴ디ㅏ ^^

방금 또 몇번 테스트하다가
 
<? } else if($view['wr_15'] == "--" && $view['wr_16'] == "--") { ?>
 
이 구문을 제일 앞으로 돌려
<? if($view['wr_15'] == "--" && $view['wr_16'] == "--") { ?>
이렇게 시작하고 나머지 뒤를
<? } else if ... { ?>
나머지 내용으로 바꾸니 적용이 됩니다..
 
결과적으로 답을 찾아냈는데
왜 그런지 설명해주실 고수님 도움이 필요합니다.
똥닦고도 찜찜한 기분입니다 ㅠㅠ
답변을 작성하시기 전에 로그인 해주세요.
전체 15
QA 내용 검색

회원로그인

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