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

자바 스크립트 질문 채택완료

블랑숑 5년 전 조회 2,974

</p>

<p>function form_check(act) {

    var f = document.frmcartlist;

    var cnt = f.records.value;</p>

<p>    if (act == "buy")

    {

        if($("input[name^=ct_chk]:checked").length < 1) {

            alert("주문하실 상품을 하나이상 선택해 주십시오.");

            return false;

        }</p>

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

            alert("미납 포인트를 납부하셔야 결제가 가능합니다.");

            return false;

        } </p>

<p>        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;

        }</p>

<p>        f.act.value = act;

        f.submit();

    }</p>

<p>    return true;

}

 </p>

<p>

 

위 소스에서

 

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

 

이게 문제인데

 

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

 

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

 

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

 

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

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

답변 6개

채택된 답변
+20 포인트
B
5년 전

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

</p>

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

<p>

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

답변에 대한 댓글 3개

블랑숑
5년 전
헉 한번에 해결되네요 감사합니다 ㅠㅠ
s
sinbi
5년 전
관련글: https://sir.kr/qa/376023
블랑숑
5년 전
sinbi // NaN이 false로 반환이 안되나봅니다

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

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

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

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

검은냥냥이

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

 

let check = "";

 

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

 

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

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

답변에 대한 댓글 1개

블랑숑
5년 전
if 다음엔 뭐가 와야 하나요?

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

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

검은냥냥이

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

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

답변에 대한 댓글 2개

블랑숑
5년 전
값이 없을 경우는 안되는건가요?
블랑숑
5년 전
답변 너무너무 감사합니다 ㅠㅠ

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

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

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

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

검은냥냥이

console.log("");

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

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

alert(""); 알림팝업에 값이 0 혹은 1이 뜨는지 확인해보세요.

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

답변에 대한 댓글 2개

블랑숑
5년 전
콘솔창에서 확인하니

Uncaught SyntaxError: Unexpected token '=='

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

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

이렇게 나오네요

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

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

if (1 == '1') {

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

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

검은냥냥이

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

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

답변에 대한 댓글 1개

블랑숑
5년 전
헉 그건 뭔가요 어떻게 넣나요

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

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

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

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

검은냥냥이

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

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

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

답변에 대한 댓글 2개

블랑숑
5년 전
방금 해봤습니다만 여전히 똑같네요 ㅠㅠ

mb_6 필드 타입은 varchar 255 입니다
블랑숑
5년 전
mb_6이 1인 회원으로 로그인해서 테스트 다 해서

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

문제가 발생하네요 ㅠㅠ

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

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

로그인