채택완료

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

2018-05-18 (금) 14:41:50 2,480
Copy
$.ajax({
                    url:'insert.php',
                    dataType:'json',
                    type:'POST',
                    data:{'test[]':$('#test_'+i).val()}
                });
            }
            setTimeout(function(){
                alert("완료");
                location.reload();
            },650);
        });

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

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

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

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

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

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

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
2018-05-18 (금) 14:51:06
Copy
$('button').prop('disabled',true);

$.ajax({

    url:'insert.php',

     dataType:'json',                   

     type:'POST',

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

    error : function(error) {

       alert('오류');

       $('button').prop('disabled',false);

    },

    success : function(data) {

       alert("완료");

        location.reload();

    }

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

답변에 대한 댓글 1개

아 도움 감사합니다. ^^ success는 반복문을 사용하면 계속 뜰 수 밖에 없나요?
2018-05-18 (금) 15:23:05

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

답변에 대한 댓글 1개

아하 ~! 감사합니다. ㅎㅎㅎ

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