Ir ao conteúdo
  • Cadastre-se
Sampaio Leal

RESOLVIDO Como enviar form sem refresh?

Recommended Posts

Olá pessoal! Estou montando um site que usa alguns sistemas em PHP, AJAX, e MySql!

 

Então, já montei sistema de cadastro e login, porém o que estou tendo dificuldades é o chat!

Ta tudo certinho, ta atualizando sem flickar, com AJAX! Mas o meu problema é na hora de enviar a mensagem para a database! Alguem sabe como faço isso sem atualizar a pagina! No caso eu só queria pegar o que está dentro da <textarea> esalvar em uma variável, assim quando apertar o botão Enviar iria mandar para a database em algum tipo de function ou algo do tipo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Normalmente eu faço isso enviando os dados por ajax e devolvendo o resultado em uma Div escondida, ou recuperando o payload pra analisar o que veio de resposta e jogar uma popup ou alert com sucesso ou erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Sampaio Leal Como já mencionaram o ajax, já estão ciente dele. Mas nenhum dos dois postou um código de exemplo.. então vamos lá.

 

Submeter um form sem "refresh" é bem simples:

 

Exemplo:

<form id="formulario">
  <textarea id="textarea" name="texto"></textarea>
  <input type="submit" value="Enviar"/>
</form>  

No jQuery fazemos assim:

$(document).ready(function(){
   $("#formulario").on("submit", function(e){
       e.preventDefault();
       var textarea = $("#textarea").val(); 
        $.ajax({
            url: "processaDados.php",
            method: "POST",
            dataType: "html",
            data: textarea
        }).done(function(data){
             //faz algo quando enviar certo 
        }).fail(function(data){
            //faz algo quando der errado
        });  
   });
});

Bom este é só um exemplo..  se tiver outros campos para enviar.. é interessante usar o serialize() no atributo  "data"

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 02/08/2016 às 17:21, dif disse:

@Sampaio Leal Como já mencionaram o ajax, já estão ciente dele. Mas nenhum dos dois postou um código de exemplo.. então vamos lá.

 

Submeter um form sem "refresh" é bem simples:

 

Exemplo:


<form id="formulario">
  <textarea id="textarea" name="texto"></textarea>
  <input type="submit" value="Enviar"/>
</form>  

No jQuery fazemos assim:


$(document).ready(function(){
   $("#formulario").on("submit", function(e){
       e.preventDefault();
       var textarea = $("#textarea").val(); 
        $.ajax({
            url: "processaDados.php",
            method: "POST",
            dataType: "html",
            data: textarea
        }).done(function(data){
             //faz algo quando enviar certo 
        }).fail(function(data){
            //faz algo quando der errado
        });  
   });
});

Bom este é só um exemplo..  se tiver outros campos para enviar.. é interessante usar o serialize() no atributo  "data"

obrigado parceiro, resolvido, eu estou com dificuldades para pegar o post em php

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Sampaio Leal Poderia postar como você tentou fazer? e o conteúdo do arquivo php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom no arquivo index.php está mais ou menos assim:

$(document).ready(function(){
	   $("#form").on("submit", function(e){
	       e.preventDefault();
	       var textarea = $("#texto").val(); 
	        $.ajax({
	            url: "status.php",
	            method: "POST",
	            dataType: "html",
	            data: textarea
	        }).done(function(data){
	             //faz algo quando enviar certo 
	        }).fail(function(data){
	            //faz algo quando der errado
	        });  
	   });
	});

O formulário está assim:

<form role="form" id="form">

<div class="form-group">

<textarea class="form-control" placeholder="Digite aqui seu status!" name="texto" id="texto"></textarea>
<button type="submit" id="send" class="btn btn-success">Enviar</button>

</div>

</form>

E no status.php eu crio a conexão e tento pegar o POST, mas não sei qual é!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Sampaio Leal Vejo que você copiou meu exemplo. Este é um dos primeiros erros. Repare que os retornos done() e fail() estão vazios. eu não coloquei nada por que deixei para você perceber.

 

Mas ainda assim, faltou uma peça importante.. QUAL o conteúdo o status.php.  poste aqui também,  para ver como você está recebendo os dados.

 

Quando tiver dúvida se tá enviando algo, use o console.log()  ou um alert() contendo o valor do campo que quer saber.

Compartilhar este post


Link para o post
Compartilhar em outros sites
27 minutos atrás, dif disse:

@Sampaio Leal Vejo que você copiou meu exemplo. Este é um dos primeiros erros. Repare que os retornos done() e fail() estão vazios. eu não coloquei nada por que deixei para você perceber.

 

Mas ainda assim, faltou uma peça importante.. QUAL o conteúdo o status.php.  poste aqui também,  para ver como você está recebendo os dados.

 

Quando tiver dúvida se tá enviando algo, use o console.log()  ou um alert() contendo o valor do campo que quer saber.

Bom na verdade eu estava tentando usar com o evento click() em um button que enviaria os dados, mas ai acho que seu exemplo seria melhor para suporte aqui né!

 

Não precisa de done() ou fail(), pelo menos no meu teste não vai precisar por enquanto!

 

cara o conteúdo do status.php é apenas a conexão mysql usando PDO e inserindo os dados da textarea via variável $text que pega o $_POST mas aí é o problema o que eu coloco dentro do post! Aí percebi que eu dou um serialize() no form e no metodo POST eu pego um input, já está resolvido meu caso!

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×