테스트 사이트 - 개발 중인 베타 버전입니다

안녕하십니까.. 채택완료

민쯩먼저깔게요 8년 전 조회 2,002

회원 여분필드

mb_1에 버튼이란 값이 있으면

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

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

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

    echo "버튼CLICK";

}

?>

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

답변 3개

채택된 답변
+20 포인트
플래토
8년 전

@민쯩먼저깔게요 님


if ($member['mb_1'] ) { 
    echo "버튼CLICK"; 

?>  

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

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 입니다.

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

민쯩먼저깔게요
8년 전
친절하고 알기 쉬운 설명감사합니다!!

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

8년 전

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

    echo "버튼CLICK";

}

?>

이렇게 해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

민쯩먼저깔게요
8년 전
늘 관심주셔서,,,감사합니다.

<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> 이거만 하니 버튼 나타나구요,,참..
민쯩먼저깔게요
8년 전
아 되는거 같습니다.

<?
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값이 버튼 아니고 그냥 값이 있으면 출력하라고 위에 처럼하니 버튼이 나타나네요..
무슨 차이인지는 모르겠습니다.
하찌
8년 전
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 } ?>

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

8년 전

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

에서

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

민쯩먼저깔게요
8년 전
아 그렇군요 감사합니다. 게시판이 아니구요
abc.php에서 이걸 넣고 조건에 맞으면 버튼을 출력시키려는데 구문오류인지 아닌지 모르겟지만 버튼을 표출하지 못해서요,,

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

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

로그인