자바 스크립트 질문

자바 스크립트 질문

QA

자바 스크립트 질문

본문


function form_check(act) {
    var f = document.frmcartlist;
    var cnt = f.records.value;
    if (act == "buy")
    {
        if($("input[name^=ct_chk]:checked").length < 1) {
            alert("주문하실 상품을 하나이상 선택해 주십시오.");
            return false;
        }
        if (<?php echo $member['mb_6'] ?> == '1') {
            alert("미납 포인트를 납부하셔야 결제가 가능합니다.");
            return false;
        } 
        f.act.value = act;
        f.submit();
    }
    else if (act == "alldelete")
    {
        f.act.value = act;
        f.submit();
    }
    else if (act == "seldelete")
    {
        if($("input[name^=ct_chk]:checked").length < 1) {
            alert("삭제하실 상품을 하나이상 선택해 주십시오.");
            return false;
        }
        f.act.value = act;
        f.submit();
    }
    return true;
}
 

 

위 소스에서

 

        if (<?php echo $member['mb_6'] ?> == '1') {
            alert("미납 포인트를 납부하셔야 결제가 가능합니다.");
            return false;
        } 

 

이게 문제인데

 

저걸 지우면 정상 작동(장바구니에서 구매하기, 바로 구매하기 등)이 됩니다.

 

근데 저걸 넣으면 정상 작동이 되지 않고 member['mb_6']  == '1' 일 경우만 정상 작동이 됩니다.

 

member['mb_6']가 1이 아닌 다른 값에서는 정상 작동하지 않습니다.

 

뭔가 잘못 적어 넣은건가요?

이 질문에 댓글 쓰기 :

답변 6

값이 없으면 0. 간단하게 아래 코드 추가해주면 되겠네요.


        if ( parseInt(<?php echo $member['mb_6'] ?>)||0 == 1) {

sinbi  // NaN이 false로 반환이 안되나봅니다

저는 이걸 넣어서 해결이 됐어요 ㅎㅎ

값이 비어있으니까 콘솔에서 보니까 오류를 뿜더군요

근데 mb_6라는게 회원은 어떻게 기본값 0으로 만든다고 해도 비회원은 비어있을거라 ㅎㅎ

mb6 값의 타입 때문일 수도 있습니다.

대입값이 '1'이 아닌 1로 해보세요.

console.log 안에 넣으면 mb6 값이 어떻게 나오나요?

헉 그건 뭔가요 어떻게 넣나요

보통 회원들은 mb_6 값은 기본 0입니다.

비회원들은 값이 없을 것으로 생각됩니다.

해당 증상은 비회원이나 다른 mb_6 값이 0인 회원들이나 같습니다

console.log("<?php echo $member['mb_6'] ?>");

위에 값 넣어보시고 크롬에서 F12 콘솔창 열은다음에

아무값이나 나오는지 확인하거나

alert("<?php echo $member['mb_6'] ?>"); 알림팝업에 값이 0 혹은 1이 뜨는지 확인해보세요.

콘솔창에서 확인하니

Uncaught SyntaxError: Unexpected token '=='

라고 떠서 해당 줄을 확인하니

if ( == '1') {
alert("미납 포인트를 납부하셔야 결제가 가능합니다.");
return false;
}

이렇게 나오네요

함수부분이 없는데 정상인건가요?

정상작동하는 회원으로 로그인해서 확인하니

if (1 == '1') {

이렇게 나옵니다

1이 아닌 경우에는 0이 아닌 값이 없는것 같습니다.

답변 너무너무 감사합니다 ㅠㅠ

밑에 비혼님이 답변해주셨는데 해결됐습니다

저 때문에 이렇게 답변해주시고 너무너무 감사합니다

오늘 좋은 하루되시고 꼭 로또 당첨 되세요 저랑 같이 1등해요!

비교대상의 값이나 변수가 없기 때문에 안됩니다.

 

let check = "<?php echo $member['mb_6'] ?>";

 

if (check == "1" || check = "")

 

위처럼 변수에 값을 넣고 빈값인지 체크하시면 될것 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 16,737
QA 내용 검색

회원로그인

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