채택완료

자바스크립트 submit 문의

2022-07-03 (일) 23:40:23 2,772
Copy
<script src="<?php echo G5_JS_URL;?>/sideview.js"></script>
<script LANGUAGE="JavaScript">
function Title() {document.title="STOP ON 1o0 By  Nolan Gendron"; window.setTimeout("Title1();",1);}
function Title1() {document.title="STOP ON 10o By Nolan Gendron"; window.setTimeout("Title();",1);}
    counter=0;
    ox=0;

function Counter1() {
    window.status="Counter: " + counter;
    document.game.number.value=counter;
    counter++;
    Time=window.setTimeout("Counter1();",1);
    if (counter==201) {
        counter=0;
    }
    ox=1;
}

function Results() {
    if (ox==0) {
        alert("정상적인 방법으로 이용해주세요.");
        location.href='<?=G5_BBS_URL.'/login.php'?>';
        return;
    } else {
    window.clearTimeout(Time);
    document.game.number.value=counter;
    document.game.submit();
    }
}
</script>

<font style="font-size: 1.2em;">
<center>
<form name="game" action="attendance_update.php" method="post">
          <input type="hidden" name="point" VALUE="<?php echo $game_point;?>">
          <input type="hidden" name="rank1" VALUE="<?php echo $rank1;?>">
          <input type="hidden" name="rank2" VALUE="<?php echo $rank2;?>">
          <input type="hidden" name="rank3" VALUE="<?php echo $rank3;?>">
          <input type="hidden" name="rank4" VALUE="<?php echo $rank4;?>">
          <input type="hidden" name="range1" VALUE="<?php echo $game_range1;?>">
          <input type="hidden" name="range2" VALUE="<?php echo $game_range2;?>">
          <input type="hidden" name="range3" VALUE="<?php echo $game_range3;?>">
          <input type="hidden" name="minus" VALUE="<?php echo $game_minus;?>">
<img src="모래.gif" style="width: 100px">
<div class="" style="width:300px">
                        <div><input class="" type="text" border=0 name="number" VALUE="0" onFocus="this.blur();" style="border-width : 10px; border-style : solid; border-color : <?=$c?>; font-size: 5rem;width:170px;text-align:center"></div>
                        </div>
<br><br>
                        <img id="Start" src="./img/start.png" onClick="Counter1(); counter=0; "  style="width: 70px; margin: 10px 10px">
                        <input type=image id="Stop" src="./img/stop.png" onClick="Results(); counter=0;" style="width: 70px; margin: 10px 10px">

</center>
</form>

위 코드에서 start 버튼 안누르고 stop 눌렀을경우 

    if (ox==0) {
        alert("정상적인 방법으로 이용해주세요.");
        location.href='<?=G5_BBS_URL.'/login.php'?>';
        return;

얼럿띄우고 메인페이지로 빠져 나가는거 같은데

실제로는 얼럿띄운다음 attendance_update.php 으로 넘어갑니다. 

else {
    window.clearTimeout(Time);
    document.game.number.value=counter;
    document.game.submit();
    }

이부분을 지워도 어김없이 attendance_update.php 으로 넘어갑니다. 

ox==0 일경우 얼럿 띄우고 메인으로 빠져 나가려면 어떻게 해야하나요.

|

답변 6개 / 댓글 5개

채택된 답변
+20 포인트
2022-07-04 (월) 03:15:48
Copy
let    counter=0;
let    ox=0;

 

선언 이렇게 하시고


function Results() {
    alert(ox);
    if (ox==0) {
        alert("정상적인 방법으로 이용해주세요.");
        location.href='<?=G5_BBS_URL.'/login.php'?>';
        return;
    } else {
    window.clearTimeout(Time);
    document.game.number.value=counter;
    document.game.submit();
    }
}

 

이런식으로 alert 창 띄워서 어떤값이 나오는지 확인해보세요

답변에 대한 댓글 1개

2022-07-04 (월) 08:20:27
값은 정상적으로 뜹니다.
start 한뒤 stop하면 1 아니면 0
2022-07-06 (수) 09:54:54

자답입니다.

www.phpschool.com 에 문의해보니 "input type=image 는 input type=submit 등 과 같다. " 라고 해서

검색해보니 <input type="image">는 submit 을 무조건 발생시킨다고 합니다. (https://blog.daum.net/happy_virus_factory/51 )

해결방법 : https://blog.opid.kr/146

2022-07-04 (월) 15:22:48

분기는 타는데 바로 submit 가 되는거같네요

return;   ==> 
return false;

로 해보세요

답변에 대한 댓글 1개

2022-07-04 (월) 16:32:53
해봤는데도 마찮가지입니다.

심지어 아래 코드를 다 없애도 서브밋 돼버리네요..
[code]
else {
window.clearTimeout(Time);
document.game.number.value=counter;
document.game.submit();
}
[/code]
2022-07-04 (월) 15:00:20

http://파일.웹.한국     <-링크가 클릭하면 제대로 안가네요. 복사해서 주소창에 붙여 넣어야되네요 ㅜㅜ;

질문과 소스를 올려놨습니다.

봐주시면 감사하겠습니다.

2022-07-04 (월) 09:19:39
if (ox < 1) {   <= 이렇게 바꿔서 해보세요

값이 정확히 찍힌다면 

비교를 못해서 조건문을 안타는거같습니다

위처럼 해도 안된다면 

let    ox= parseInt(0);

    if (ox==0) {

이렇게 형변환을 해서 해보세요
    if (ox==0) {

parseInt

답변에 대한 댓글 1개

2022-07-04 (월) 14:26:27
나오는 메세지를 보면 분기는 잘 합니다.
그런데 ox==0일 경우 메세지 뿌린후 > 확인하면 > attendance_update.php 으로 넘어갑니다.

[code]
else {
window.clearTimeout(Time);
document.game.number.value=counter;
document.game.submit();
}
[code]

if문에 저 위 소스를 (else 부분) 몽땅 지워도 어김없이 attendance_update.php 으로 넘어갑니다.
그게 이상해서 문의 드린거구요..


document.game.submit(); 이부분이 없으면 메세지 뿌리고 서브밋 못하는거 아닌가요?
2022-07-04 (월) 07:52:55

저기에서 포인트는 ox라는 변수가 언제 선언 되었고, 어떻게 초기화 되었고, 어떻게 바뀌고 있는가 인데요...

위의 내용을 생각하면서 지역변수, 전역변수 개념부터 찾아보시죠...

답변에 대한 댓글 2개

2022-07-04 (월) 08:23:50
ox=0;
이렇게 한게 변수 선언한게 아닌가요?
저 위 소스 상으로 start 한뒤 stop하면 1 아니면 0 으로 ox값은 잘 동작하던데.. 혹시 아니면 알려주시면 감사하겠습니다.
올리신 내용 자세히 읽어보니 submit에 대한 것이네요.
제가 코드를 잘못 파악하고 가이드를 잘못 드렸네요.

ox==0인 부분에 return으로 되어져있는데 저 부분을 return false로 바꿔보세요.

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