How to make foreach jquery not repeat data when I open window model?

0

I have a modal window that when I open loads the data I need to have through a foreach jquery. However, if you close modal and reopen, all data coming from foreach is repeated. How can I prevent this?

jquery

$(document).on("click", ".btn-add-agent-proximo", function(e) {
  if($('#add_agent').is(':checked')){ 
    $('#modal-add-agent').modal('hide'); 

    var id_agente_pai = <?= Auth::user()->id ?>

    $.ajax({
        type: "POST",
        url: "https://artslots.net/admin/list_agent",
        headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
        data: { id_agente_pai : 'id_agente_pai'},
        dataType: 'json'
    }).done(function( data ) {
        $.each(data.parents, function( key, parents ) {
            $('#parent').append('<option value="'+parents.id+'"><span>ID('+parents.id+') </span>'+parents.username+'</option>');
        });
        $.each(data.currencies, function( key, currencies ) {
            $('#currency').append('<option value="'+currencies.id+'">'+currencies.code+'</option>');
        });
        $.each(data.funcoes, function( key, funcoes ) {
            $('#funcoes').append('<option value="'+funcoes.id+'">'+funcoes.nome+'</option>');
        });

    }).fail(function(data) {
        toastr.error('Ocorreu um erro!');
    });

    $('#modal-add-agent-modal').modal('show');

  }else if($('#add_jogador').is(':checked')){ 
    $('#modal-add-agent').modal('hide'); 

      $.ajax({
        type: "POST",
        url: "https://artslots.net/admin/list_agent",
        headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
        data: { id_agente_pai : 'id_agente_pai'},
        dataType: 'json'
    }).done(function( data ) {
        $.each(data.parents, function( key, parents ) {
            $('#parent_jogador').append('<option value="'+parents.id+'"><span>ID('+parents.id+') </span>'+parents.username+'</option>');
        });

    }).fail(function(data) {
        toastr.error('Ocorreu um erro!');
    });

    $('#modal-add-jogador-modal').modal('show');
  }
});
    
asked by anonymous 24.04.2017 / 17:48

1 answer

2

You can clear the data in the event that is triggered when the modal is closed, for example:

$('#modal-add-agent').on('hide.bs.modal', function () {
        ...
 });

Whenever you close mode $('#modal-add-agent').modal('hide'); this event will fire, then you can use empty() jquery, which removes all child nodes of the element you want.

ex:

$('#parent').empty();
    
24.04.2017 / 17:56