Submit via Ajax não funciona

16/11/2016

0

Tenho 2 funções ajax no meu código para que eu edite algo no banco de dados, um gera o formulário preenchido com os dados da linha a ser editada e traz para uma div na minha página.
function editar_pet(id,nome){
decisao = confirm('Deseja editar o Pet '+nome);
    if (decisao)
    {
        
        $.ajax({
          url: "http://localhost/server_mvet/editar_pet.php",
          dataType: "text",
          type: 'POST',
          data: {id: id},
          success: function(html){
		  $('#editar_pet').html(html).show();
		  $('#editar').hide();
		  $('#editar_pet').show(); 
          },  
          error: function(){
            alert('Erro ao se conectar');
          }
        });
    }
	}


A outra função pega os dados desse formulário e altera no banco
$(".form-edit-pet").submit(function(){
	$('#loading').show();
		$.ajax({
			url:'http://localhost/server_mvet/update_pet.php',
			type:'post',
			dataType : "text",
			data:$(".form-edit-pet").serialize(),
			success: function(retorno){
				if(retorno == '2')
				{
					alert("Pet editado com sucesso");
				}
				else if(retorno == 1)
				{
					alert("Preencha todos os campos");
				}
                else 
				{
					alert(retorno);
				}
				$('#loading').hide();
			},
			error: function(){
				alert("Não possível se conectar!!");
				$('#loading').hide();
			}
		});
		return false;
	});


A 1ª função funciona corretamente e me traz o formulário correto, mas a 2ª, quando clico em submit, a página só recarrega e não acontece nada, não tem nem vestigio do ajax chamando o arquivo update_pet.php.

O problema pode estar acontecendo porque estou criando o formulário fora de onde está a função submit?
Julio Filho

Julio Filho

Responder

Post mais votado

21/11/2016

Fala Julio, beleza?

Pelo o que eu entendi do código, acho que o problema pode ser na ordem de execução a aplicação o javascript é carregado e somente depois é criado o form .form-edit-pet correto? Se for isso realmente não vai funcionar pois quando o script foi executado ainda não existia o form.

Outra questão pode ser o prevent.Default

$(".form-edit-pet").submit(function(event){
  event.preventDefault();


O comportamento padrão do form é submeter a pagina, com o uso o prevent.default você vai fazer que o form não seja enviado e o seu código continue com a execução normal.

Tenta, esses dois caminhos e depois passa o feed se algum deles funfou!

Abraços!

Fernando Gaspar

Fernando Gaspar
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar