Ldovale 9 Denunciar post Postado Março 15, 2015 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
William Bruno 1501 Denunciar post Postado Março 16, 2015 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
Ldovale 9 Denunciar post Postado Março 16, 2015 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
William Bruno 1501 Denunciar post Postado Março 16, 2015 Exatamente. Você entendeu :lol: Compartilhar este post Link para o post Compartilhar em outros sites
Ldovale 9 Denunciar post Postado Março 16, 2015 $(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
William Bruno 1501 Denunciar post Postado Março 16, 2015 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
Ldovale 9 Denunciar post Postado Março 16, 2015 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