2017-01-21 1 views
4

я нажав на кнопку, и вызов функции ... когда я нажимаю кнопку дважды данныеКак я могу избежать дублирования запрос нажатием кнопки дважды

вставляет дважды

в базе данных MySQL как я могу его избежать в моем случае ..?

Это мой динамический HTML:

<button type="button" 
    href="javascript:;" 
    class="btn btn-primary" 
     onclick="jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> 
     Subimt </button> 

Это моя функция AJAX вызова:

<script type="text/javascript"> 
    function jobResponse(res,jobId){ 
     var frm_data = { res : res, 
      jobId : jobId 
     } 
     $.ajax({ 
      //ajax resopons and requst 
     }); 
    } 
    </script> 

Как я решить этот вопрос? ..

ответ

4

Передайте ссылку на кнопку и отключите ее, а затем, когда завершен ajax, снова включите ее, если необходимо.

<button type="button" href="javascript:;" class="btn btn-primary" onclick="jobResponse(this, 'yes',<?php echo $myjobs['id_job'];?>)"> Subimt</button> 
<!--                 ----------------^^^^---- 


<script type="text/javascript"> 
    function jobResponse(ele, res, jobId) { 
    var frm_data = { 
     res: res, 
     jobId: jobId 
    }; 
    // disable the button 
    $(ele).prop('disabled', true); 
    $.ajax({ 
     //ajax resopons and requst 
     complete: function() { 
     // enable the button if you need to 
     $(ele).prop('disabled', false); 
     } 
    }); 
    } 
</script> 
+0

если есть две кнопки, это будет такое же ..? –

+0

@ LyndaCarter: да, сделайте то же самое –

3

вы можете сделать, как отключить, когда первый раз пользователь нажимает на кнопку, как следующий

onclick="this.disabled='true';jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> 
3

вы можете использовать флаг, как этот

<script type="text/javascript"> 

var isClicked = false; 
    function jobResponse(res,jobId){ 
if(isClicked=== false){ 
     var frm_data = { res : res, 
      jobId : jobId 
     } 
     $.ajax({ 
      //ajax resopons and requst 
     }); 
     isClicked = true; 
} 
    } 
    </script> 
3

Вы можете следить за простой трюк здесь. Сначала определите переменную типа Boolean true. После нажатия первого раза, которое станет false. Именно так.

<script type="text/javascript"> 
var x=true; 
function jobResponse(res,jobId){ 
    if(x){ 
     x=false; 
     var frm_data = { res : res, 
      jobId : jobId 
     }   
     $.ajax({ 
      //ajax resopons and requst 
     }); 
    } 
} 
</script> 
3

Disabled кнопку после того, как Coll функция и включена после ответа АЯКС

Динамический HTML функции

<button type="button" 
href="javascript:;" 
class="btn btn-primary" 
id="saveJob" 
    onclick="jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> 
    Subimt </button> 

Ajax

<script type="text/javascript"> 
    function jobResponse(res, jobId) { 
    var frm_data = { 
    res: res, 
    jobId: jobId 
}; 
// disable the button 
$(#saveJob).prop('disabled', true); 
$.ajax({ 
    //ajax resopons and requst 
    complete: function() { 
    // enable the button if you need to 
    $(#saveJob).prop('disabled', false); 
    } 
}); 

}

Надеюсь, это поможет вам.

Смежные вопросы