Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
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);
});
});
});Exatamente. Você entendeu :lol:
$(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:
});
}
});
});
});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().
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!!!!!!!
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.