채택완료

자바 스크립트 질문

Copy
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개 / 댓글 11개

채택된 답변
+20 포인트

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

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

답변에 대한 댓글 3개

헉 한번에 해결되네요 감사합니다 ㅠㅠ
sinbi // NaN이 false로 반환이 안되나봅니다

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

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

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

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

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

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

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

답변에 대한 댓글 1개

if 다음엔 뭐가 와야 하나요?

1일 경우면 알러트인데 1이 아니거나 비어 있으면 뭐라고 해야 하나요?

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

답변에 대한 댓글 2개

값이 없을 경우는 안되는건가요?
답변 너무너무 감사합니다 ㅠㅠ

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

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

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

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

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

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

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

답변에 대한 댓글 2개

콘솔창에서 확인하니

Uncaught SyntaxError: Unexpected token '=='

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

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

이렇게 나오네요

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

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

if (1 == '1') {

이렇게 나옵니다
콘솔로그에선 비회원이나 작동 안되는 일반회원이나 console.log(""); 나옵니다

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

답변에 대한 댓글 1개

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

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

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

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

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

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

답변에 대한 댓글 2개

방금 해봤습니다만 여전히 똑같네요 ㅠㅠ

mb_6 필드 타입은 varchar 255 입니다
mb_6이 1인 회원으로 로그인해서 테스트 다 해서

잘 된다라고 생각하고 있었는데 다른 회원에서는 구매하기가 눌러지지 않는 등

문제가 발생하네요 ㅠㅠ

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