안녕하십니까..

안녕하십니까..

QA

안녕하십니까..

본문

회원 여분필드

mb_1에 버튼이란 값이 있으면


아래 버튼을 출력하라인데..버튼이 안나타나요

버튼이란 값은 분명히 있는데요,


<?              

if ($mb['mb_1'] == 버튼 ) {

    echo "<a href='javascript:void(0);' onclick='window.open('abc.php?mb_id=$member[mb_id]','pop','left=150,width=630, height=700, scrollbars=1');' class='btn_images'>버튼CLICK</a>";

}

?>

이 질문에 댓글 쓰기 :

답변 3

 님

<?              
if ($member['mb_1'] ) { 
    echo "<a href='javascript:void(0);' onclick='window.open('abc.php?mb_id=$member[mb_id]','pop','left=150,width=630, height=700, scrollbars=1');' class='btn_images'>버튼CLICK</a>"; 

?>  


에서 제가 볼대 우려스러운 부분말씀드리면

onclick=.... $member[mb_id] 이부분이 습관되시면 오류를 유발하기 좋은 형태입니다.

가급적

mb_id=$member[mb_id]' 일경우 


php 구분내에서 문자열중간의 php변수를 사용할때

{ } 로 감싸주거나

문자열을 "로 닫고 . $변수. 로 붙이고 다시 "을 열고 


이렇게 하시는게 안전합니다.

그리고, 


mb_1 에 존재하는것과 의 차이는


값이란것이 

1: Null , 

2 : 존재하지않는문자열 C언어에서는 \0 이라고하는 값 : "" 또는 ''

3. 0

4. 1이상의 수 또는 음수

5. 순수한 문자나 문자열

이런값들이 올수있는데


 PHP에서 논리비교를 할때 

null, 0, 존재하지않는문자열은 false 와 동일

값이 존재하고 0보다 큰  값이 true 로 인식합니다.


따라서, 0 이나 음수를 비교할때는 직접 명시를 해주어야 하지만


0이나 없음이나 null 이면 처리를 안하고 존재할때 처리하려면

위의 코드

if ($member[mb_1]) 이 올바른 조건으로 성립됩니다.


--------------------


참고로, 


javascript 에서도 유사합니다.


php에 없는 undefined 라는 게 있습니다.


if (a) 라는 조건에서도 마찬가지로


null / undefined / 0 / false 다 동일한 false 입니다.


이걸 잘 응용하면 코드를 많이 줄일수있습니다.



if ($mb['mb_1'] == 버튼 ) {


에서


"버튼"으로 변경해 주면 됩니다.


if ($mb['mb_1'] == "버튼" ) { 


문자열인 경우에는 따옴표나 큰따옴표로 감싸주어야 제대로 인식됩니다.

<?              

if ($member['mb_1'] == '버튼' ) {

    echo "<a href='javascript:void(0);' onclick='window.open('abc.php?mb_id=$member[mb_id]','pop','left=150,width=630, height=700, scrollbars=1');' class='btn_images'>버튼CLICK</a>";

}

?>


이렇게 해보세요

늘 관심주셔서,,,감사합니다.

                      <li><a href="<?=$g5['g5_path']?>/bbs/board.php?bo_table=1_1&sca=&sfl=mb_id,1&stx=<?=$member[mb_id]?>" target="_blank" class="btn_images">나의 상담</a></li>
                     
         
                     
<?             
if ($member['mb_1'] == '버튼' ) {
    echo "<li><a href='javascript:void(0);' onclick='window.open('abc.php?mb_id=$member[mb_id]','pop','left=150,width=630, height=700, scrollbars=1');' class='btn_images'>버튼CLICK</a></li>";
}
?> 

위에 나의 상담이라는 버튼은 나타나는데..새로 만든 즉 mb_1에 버튼이라는 값이 있는것은

버튼CLICK

이게 안나타나네요

echo 바깥부분 php코드 다제거하고

<li><a href='javascript:void(0);' onclick='window.open('abc.php?mb_id=$member[mb_id]','pop','left=150,width=630, height=700, scrollbars=1');' class='btn_images'>버튼CLICK</a></li> 이거만 하니 버튼 나타나구요,,참..

아 되는거 같습니다.

<?             
if ($member['mb_1'] ) {
    echo "<a href='javascript:void(0);' onclick='window.open('abc.php?mb_id=$member[mb_id]','pop','left=150,width=630, height=700, scrollbars=1');' class='btn_images'>버튼CLICK</a>";
}
?>

mb_1값이 버튼 아니고 그냥 값이 있으면 출력하라고 위에 처럼하니 버튼이 나타나네요..
무슨 차이인지는 모르겠습니다.

if ($member['mb_1'] )  이부분은

쉽게 설명드리자면 로그인한 회원의 mb_1필드에 값이 0 이 아닌 다른값이 존재할경우  실행하는 구문입니다

로그인한 회원의 mb_1 필드에 버튼이라는 값이 있는건가요?

어떤 구조로 만들어져 있는지 확인부터 해야할 것 같습니다

그리고 스크립트 파일 호출할때도 문법상 오류가 많아 보입니다

<?php if ($member['mb_1'] == "버튼" ) { ?>
<a href="#"  onclick="window.open('abc.php?mb_id=<?php echo $member['mb_id']?>','pop','left=150,width=630,height=700,scrollbars=1'); return false;" class='btn_images'>버튼CLICK</a>
<?php } ?>

답변을 작성하시기 전에 로그인 해주세요.
전체 15,331
QA 내용 검색
filter #php ×

회원로그인

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