Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ldovale

Ajax

Recommended Posts

Boa noite pessoal

 

Estou utilizando o AJAX para mostrar um formulário para cadastrar turmas, dentro deste form, tem outro ajax que quando o usuário escolher entre os dois projetos, aparecerá outa opção no formulário.

 

Estava funcionando antes quando eu não puxava o formulário pelo ajax, agora já não funciona.

 

O resultado de um ajax não permite que seja executada outra requisição?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, quando você trás algo com ajax, os elementos inseridos no DOM não terão os eventos atrelados, pois eles vieram para a página depois do evento document.ready

 

Você precisa fazer um "bind" do evento logo após colocar o html na página.

Entendeu ?

 

 

No callback do primeiro ajax, você faz o bind do evento para o segundo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixe-me ver se entendi.

 

 

$(document).ready(function(){                    
        $("input[type |= 'button']").click(function(){       
            var idAluno = $("#alunos").attr("value");            
                $.ajax({url:'polo/view/area2/ajax_add_alunos_turma.php',
                 type:'post',
                 dataType:'html',
                 data:{
                     id:idAluno
                 },
                 success:function(result){
                     $("#add_alunos").append(result); // Fazer o bind aqui?
 
                 },beforeSend: function(){
                  $('#loading').css({display:"block"});
                  },
                 complete: function(msg){
                    $('#loading').css({display:"none"});
                 }
 
                  }).done(function(data){
                  //$("#resultadoChamada").html(data);
             });
     });
     
    });

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente. Você entendeu :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites
$(document).ready(function(){
$("#buscarAlunos").bind('input', function(){
var names = $("#buscarAlunos").val();
$.ajax({url:'polo/view/area2/ajax_busc_alunos.php',
type:'post',
dataType:'html',
data:{
nome:names
},
success:function(result){
$("#listar_alunos").html(result);
// Ficaria assim?
$("#t_polo").click(function(){
// Faria a outra requisição Ajax

 

Exatamente. Você entendeu :lol:

 

});
}
});
});
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais ou menos.. tem como isolar e deixar menos "callback hell", mas é esse o caminho.

 

O ponto é que o elemento #t_polo só vai começar a existir no DOM após esse append: $("#listar_alunos").html(result);, então é por isso que você precisa fazer o bind do .click() logo após o append().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com uma duvida sobre a susgestão

 

Se após o formulário aparecer para o usuário com o ajax, ainda dependo que ele selecione outra opção para executar outro ajax. Então no codigo jquery quando o resultado vier do php, eu vou mostrar o resultado e montar outra condição tipo

 

$(document).ready(function(){     
$("#t_polo").bind('input', function(){             
 
       var polo = $("#t_polo").val();                 
           $.ajax({url:'polo/view/area1/ajax_facilitador_turma.php',
            type:'post',
            dataType:'html',
            data:{
                polo:polo
            },
            success:function(result){
                $("#facilitadores_turma").html(result);

$(document).ready(function(){     
$("#t_polo").bind('input', function(){             
 
       var polo = $("#t_polo").val();                 
           $.ajax({url:'polo/view/area1/ajax_facilitador_turma.php',
            type:'post',
            dataType:'html',
            data:{
                polo:polo
            },
            success:function(result){
                $("#facilitadores_turma").html(result);
                
            }
    });
    
});
});

                
            }
    });
    
});
});
 

mais ou menos.. tem como isolar e deixar menos "callback hell", mas é esse o caminho.

O ponto é que o elemento #t_polo só vai começar a existir no DOM após esse append: $("#listar_alunos").html(result);, então é por isso que você precisa fazer o bind do .click() logo após o append().

 

 

Rapaz, é isto mesmo que você mostrou.

 

VlW CARA!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.