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

ajax로 input값 서버로 보내는 방법 문의드립니다. 채택완료

지음ad 7년 전 조회 2,292

</p>

<p>                $.ajax({

                    url:'insert.php',

                    dataType:'json',

                    type:'POST',

                    data:{'test[]':$('#test_'+i).val()}

                });

            }

            setTimeout(function(){

                alert("완료");

                location.reload();

            },650);

        });</p>

<p>

 

ajax로 insert.php에 input값을 보낸 뒤 sql insert문으로 데이터를 등록하고 있습니다.

소량은 잘 올라가는데 100개를 한꺼번에 올리려니 중간에 alert가 떠서 data가 누락됩니다.

그래서 setTimeout으로 시간을 지연시킨 뒤 alert뜨도록 해서 누락되지 않고 넘어가게 했습니다.

 

근데 또 떠블 클릭을 하니 data가 중복으로 올라가져서 낭패네요...

한번 클릭하고 data가 다 올라갈 때까지 클릭이 다른 클릭이 안되게 하려면 어떻게 해야되나요?

그리고 setTimeout으로 시간 고정시켜놓는거 말고 그냥 db가 다 전달되면 alert 뜨도록 할수는 없나요??? 고수님들 도움부탁드립니다..

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

답변 2개

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

</p>

<p>$('button').prop('disabled',true);</p>

<p>$.ajax({</p>

<p>    url:'insert.php',</p>

<p>     dataType:'json',                   </p>

<p>     type:'POST',</p>

<p>    data:{'test[]':$('#test_'+i).val(),</p>

<p>    error : function(error) {</p>

<p>       alert('오류');</p>

<p>       $('button').prop('disabled',false);</p>

<p>    },</p>

<p>    success : function(data) {</p>

<p>       alert("완료");</p>

<p>        location.reload();</p>

<p>    }</p>

<p>

뭐 간단히 하면 이렇게 하면 되지 않을까요? 전송전에 버튼을 비활성화 시키고 성공시에만 버튼을 다시 활성화 시키는걸로

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

답변에 대한 댓글 1개

지음ad
7년 전
아 도움 감사합니다. ^^ success는 반복문을 사용하면 계속 뜰 수 밖에 없나요?

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

7년 전

ajax를 반복 문으로 돌리지 마시고 데이터를 묶어서 보내서 받는쪽에서 한번에 처리 하세요

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

답변에 대한 댓글 1개

지음ad
7년 전
아하 ~! 감사합니다. ㅎㅎㅎ

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

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

로그인