Ir para conteúdo

POWERED BY:

Arquivado

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

donkeykong__

[Resolvido] Validação + cadastro + lembrar senha

Recommended Posts

Primeiro leia http://forum.imasters.com.br/index.php?app=core&module=help

 

Sua duvida a resposta é ajax quando é pressionado o botão de cadastrar no mercado livre ele envia uma requisição ajax.

 

Desculpa se estou infrigindo alguma regra, mas não foi nada proposital. Apenas pensei na solução em php, como disse no post não encontrei nada relacionado, por isso postei aqui... mas enfim, obrigado por responder, ja tenho por onde começar a procurar. ;) mais idéias são bem-vindas, um tutorial ou uma video-aula com um exemplo seria legal. Vlw!!!!

 

Se puderem me ajudar, já estou trabalhando em um código com requisição Ajax que está assim:

 

Página cadastro.php:

<script type="text/javascript" language="javascript">
   $(function($) {
       $("#formulario").submit(function() {
           var nome      = $("#nome").val();
           var cidade    = $("#cidade").val();
           var estado    = $("#estado").val();

          $("#status").html("<img src='loader.gif' alt='Enviando' />");

          $.post('processa.php', {nome: nome, cidade: cidade, estado: estado }, function(resposta) {

         $("#status").slideDown();
         if (resposta != false) {
             $("#status").html(resposta);
         }else {
             $("#status").html("Mensagem enviada com sucesso!");
         }
       });
   });
});
</script>

<form method="post" action="javascript:func()" id="formulario">
   <fieldset>
     	<legend>Nome:</legend>
      	<input id="nome" type="text" name="nome" value="<?php echo $nome;?>" />
   </fieldset>
   <fieldset>
     	<legend>Cidade:</legend>
       <input id="cidade" type="text" name="cidade" value="<?php echo $cidade;?>" />
       </fieldset>      
       <fieldset>
           <legend>Estado:</legend>
           <input id="estado" type="text" name="estado" value="<?php echo $estado;?>" />
       </fieldset>            
       <fieldset>
       	<button type="submit" name="cadastro" id="bt-cadastrar" value="1"></button>
       </fieldset>
   </form>

 

processa.php

<?php
//Conexão com o banco de dados
require_once("config.php");

// Recuperamos os valores dos campos através do método POST
if($_POST['cadastro'] == true){
$nome      = $_POST['nome'];
$cidade    = $_POST['cidade'];
$estado    = $_POST['estado'];


// Verifica se o nome foi preenchido
if (empty($nome)) {
echo "Escreva seu nome";
}elseif (empty($cidade)) {
echo "Digite a cidade";
}elseif (empty($estado)) {
echo "Digite seu estado";	
}else{

$cadastra = mysql_query("INSERT INTO tabela ('nome','cidade','estado') VALUES($nome,$cidade,$estado)");
if($cadastra) echo '<script type="text/javascript">alert("Cadastrado com sucesso!");</script>';
else echo "Não foi possível realizar o cadastro! Sorry, try again.";

?>

 

O problema -> o botão não chama a função, logo nada acontece.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara Ajax ainda não é meu forte, mais uma vez obrigado pelos tutoriais. Ps: pra varia o tuto cadastro não funciona =S;

vou tentar adaptar algumas coisas, mas como leigo vai ficar meio complicado rsrsr. Se puderem da uma olhada no meu código agradeço. Só dizer se tem algo errado, algum detalhe que talvez pra mim tenha passado despercebido, mas pra quem tem mais experiência talvez seja percebido só de bater o olho. Agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então já tinha feito desse jeito. dei bobeira e esqueci de criar a div #status, que é onde aparecem as mensagens.

agora ela mostra a mensgem 'Enviando' porém não segue com o script.

 

Não to msm conseguindo identificar o erro, depois de criar as variáveis a função post deveria passar o valores pra pagina processa.php, mesmo com os campos preenchido nao ta funcionando. To sem opções.

 

O fato de eu abrir a página em facebox influencia em alguma coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu aqui denovo persistindo em um problema antigo, mas não resolvido =D

Alguém aqui do fórum poderia me ajudar encontrar o erro nesse script?! Já tentei de várias maneiras mas não funciona. Esse não é o código original, peguei nesse site Clique aqui e tentei adaptar pra minha necessidade. O problema que tá acontecendo é que essa bagacinha não ta inserindo os dados no banco de dados. O script ta parando na parte de processamento e fica mostrando o gif carregando 10 anos e para ai. eu to aprendendo jquery e consigo entender o que está nesse código. O fato de ele não funcionar me faz duvidar se estou mesmo aprendendo. =S

Preciso muito fazer esse script funcionar, conto com a ajuda de vocês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi @donkeykong_

 

você só precisa aprender a debugar o teu js, leia:

http://wbruno.com.br/blog/2011/03/31/como-debugar-javascript-firefox-erros-comuns/

http://wbruno.com.br/blog/2011/04/14/como-debugar-ajax-firebug/

 

 

ps: deixe no evento submit, usar o click é um erro nesse caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai @William Bruno,obrigado pela resposta. Muito bom seus artigos, li os dois e aprendi muito. Mas como você mesmo diz: nem sempre é tão simples. Pois é, fiz o debug e ao que parece, nenhum erro e encontrado. Posso estar enganado por não estar familiarizado com o plugin, por isso tirei um print e coloquei nesse endereço Clique aqui, se puder da uma olhada e me ajudar a identificar o erro. Mesmo com os campos vazios a mensagem de sucesso é exibida.

 

ps: o firebug retorna status 200OK(não entendi!)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, então o problema não é no código, mas na lógica

 

veja:

if (resposta != false) {

a resposta sempre sempre e sempre vai ser diferente de false :lol:

 

 

=)

ajax só vai te retornar texto. Apenas texto...

faça o seguinte, por exemplo:

if($cadastra) echo 'tudo_certo';
else echo 'deu_erro';

e ai seu if fica assim:

if (resposta != 'tudo_certo') {
             $("#status").html("Deu algum erro!");

 

 

=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi sua explicação.

mas agora ele exibe a mensagem de erro foverer =(

e como você mesmo disse a mágica do ajax é 'ir e vir' sem o refresh, mas nessa volta ele ta digamos que 'deixando um pé de chinelo pra trás' =D

 

pela lógica ele deveria primeiro checar esse trecho do código php

if (empty($nome)) {
		echo "Escreva seu nome";
}elseif (empty($email)) {
		echo "Digite um e-mail";
}elseif (empty($telefone)) {
		echo "Digite seu telefone";       
}else{

mas pelo visto esse apressadinho já pula lá pro final =( isso inclui o insert que ele deveria pelo menos, tentar fazer, talvez esteja interpretando errado mas olha como eu vejo:

ao clicar no botão enviar ele ativa o evento função javascript, que por sua vez pega os valores(visitantes), armazena nas respectivas variáveis e manda tudo pra página processa.php. Essa por sua vez recebe os valores(visitantes), verifica se estão na lista de convidados, se estiverem eles são cadastrados no banco de dados e podem entrar pra festa, caso contrário, um alerta é emitido, ai não faz o cadastro, sem festa =D

 

me corrija se eu estiver errado, prefiro ver assim, fica mais fácil de entender =)

 

beleza William Bruno, resolvi =D

seguindo o seu raciocinio de que a função resposta sempre seria diferente de false, eu fiz o contrário, fiz o teste pra saber se o retorno da função seria diferente de 'true'. Não parei ai =D

melhorei a query de cadastro deixando assim

$cadastra = mysql_query("INSERT INTO funcionarios (id,nome,email,telefone) VALUES (NULL,'$nome','$email','$telefone')") or die(mysql_error());

 

antes não tinha aspas e o campo id não era declarado, depois de coloquei um or die, tcharam apareceram os erros do MYSQL kkkkkkk

 

o código jquery aquele trecho ficou assim

if(resposta != true){
   $("#status").html(resposta);
}else{
   $("#status").html("Mensagem enviada com sucesso!");
}

 

Pode dar o tópico por resolvido, masssss se quiser explicar melhor o porque do uso das '' aspas simples nas variáveis e ter de declarar NULL para campos do tipo id pro INSERT funcionar, vou ficar feliz =DD

 

Abraço e vlw pela ajuda!!!!!!

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.