Ir para conteúdo

POWERED BY:

Arquivado

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

eu_Nana

inserir dados

Recommended Posts

Olá pessoal...eu de novo....

 

Tenho um formulário de cadastro, onde carrego o mesmo dentro de uma div usando ajax....ele é carregado dentro da div.....faz todas as verificações de JS(campos obrigatórios), esta validando...só que quando clico em "enviar".....exibe vários "notices" e logo abaixo esse "notices" exibe a msg de cadastrado com sucesso, porém qnd olho no BD não cadastrou nada......segue abaixo as msgs de erro:

 

Notice: Undefined index: nome in insere.php on line 19

 

Notice: Undefined index: rg in insere.php on line 20

 

Notice: Undefined index: cpf in insere.php on line 21

 

 

form_inscricao.php

 

<form action="javascript: enviaForm('cadastro', 'cadastro/insere_participante.php','conteudo');" name="cadastro" id="cadastro" method="post" onSubmit="return validar()">
    	
		        
        <div>
    		<span class="campos_div_esq">Nome:</span>
    	    <span class="input">
           	<input type="text" name="nome" size="35" id="nome"/>
            </span><br /><br />
            
            <span class="campo_rg"> R.G: </span>
            <span class="input">
            <input type="text" name="rg" id="rg" />
            </span>
            
            <span class="txt_tabela">CPF: </span>
            <input type="text" name="cpf" id="cpf" /><br /><br />
            
            <span class="campo_end"> Endereço: </span>
            <span class="input">
            	<input type="text" name="end" id="end" />
            </span>
            
                   
          <input type="submit" value="Enviar" ONCLICK="valida (this.form)" />

        </div>
        </form>

insere.php

 

<div id="conteudo">
<?php
   include "conexao.php";

	$nome = $_POST['nome'];
	$rg   = $_POST['rg'];
	$cpf  = $_POST['cpf'];
	
	
	/********************************************************
		Verifica se o CPF do participante já esta cadastrado
	*********************************************************/
	
	$busca_cpf = "SELECT * FROM participantes WHERE cpf='$cpf'"; //fazendo a pesquisa
    $res_busca_cpf = mysql_query($busca_cpf); //realizando a requisição

    if($resultado = mysql_fetch_row($res_busca_cpf))
    {
        $nome = "$resultado[1]";
       echo"<script>alert('Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante: $nome ');
			
            document.location.href='form_inscricao.php';
        </script> ";
    }

    else{
		$sql = "INSERT INTO participantes(nome, rg, cpf) VALUES('$nome','$rg','$cpf')";
									   
		$rs  = mysql_query($sql,$con) or die (mysql_error());
      	}  
       $msg = "Cliente CADASTRADO com sucesso";
	
	
		echo $msg;
	
    	mysql_close($con);
?>

Como faço para corrigir esses notices sem colocar o "@" é claro....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porquê não é POST, é GET.

Se eu não me engano esse método de AJAX que você está usando leva as informações como GET.

 

E desculpa por não te ajudar naquele seu outro problema do SELECT dinâmico... eu não consigo pensar no que está dando errado. Eu testei aqui e funcionou. =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porquê não é POST, é GET.

Se eu não me engano esse método de AJAX que você está usando leva as informações como GET.

 

E desculpa por não te ajudar naquele seu outro problema do SELECT dinâmico... eu não consigo pensar no que está dando errado. Eu testei aqui e funcionou. =/

 

Oláa.....deu certo.....obrigada.....

 

e com relação ao problema do select.....eu ainda estou tentando......

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Porquê não é POST, é GET.

Se eu não me engano esse método de AJAX que você está usando leva as informações como GET.

 

E desculpa por não te ajudar naquele seu outro problema do SELECT dinâmico... eu não consigo pensar no que está dando errado. Eu testei aqui e funcionou. =/

 

Oláa.....deu certo.....obrigada.....

 

e com relação ao problema do select.....eu ainda estou tentando......

 

 

uma pergunta....eu quero colocar o código de insereção na msm página do form de cadastro.....to fazendo mais não esta dando certo.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que por um if assim:

if($_GET['nome'] != "")
Antes disso:

$nome = $_POST['nome'];
$rg   = $_POST['rg'];
$cpf  = $_POST['cpf'];

Porquê ele vai ler o GET e não ter nada.

Dae se ele tiver vazio ele não entra no IF, agora quando você preencher ele não vai estar vazio, vai entrar no IF e vai fazer resto do código.

 

(=

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que por um if assim:

if($_GET['nome'] != "")
Antes disso:

$nome = $_POST['nome'];
$rg   = $_POST['rg'];
$cpf  = $_POST['cpf'];

Porquê ele vai ler o GET e não ter nada.

Dae se ele tiver vazio ele não entra no IF, agora quando você preencher ele não vai estar vazio, vai entrar no IF e vai fazer resto do código.

 

(=

 

 

Certo...mais tenho uma verificação se o CPF já estiver cadastro ele da um alert....esse alerta não esta acontecendo.....ele só cadastra se o CPF não existir no BD...caso exista...ele esta fazendo o seguinte: da msg de cadastro c sucesso ..mais não cadastra

 

<?php
   			include "../include/conexao.php";
			if($_GET['nome'] != "")
			{
			$nome = $_GET['nome'];
			$rg   = $_GET['rg'];
			$cpf  = $_GET['cpf'];
			
	}
		/********************************************************
			Verifica se o CPF do participante já esta cadastrado
		*********************************************************/
	
		$busca_cpf = "SELECT * FROM participantes WHERE cpf='$cpf'"; //fazendo a pesquisa
    	$res_busca_cpf = mysql_query($busca_cpf); //realizando a requisição

    	if($resultado = mysql_fetch_row($res_busca_cpf))
    	{
        	$nome = "$resultado[1]";
       		echo"<script>alert('Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante: $nome ');
			
            document.location.href='form_inscricao.php';
        </script> ";
    }

    else{
		$sql = "INSERT INTO participantes(nome, rg, cpf) VALUES('$nome','$rg','$cpf')";
									   
		$rs  = mysql_query($sql,$con) or die (mysql_error());
      	}  
       $msg = "Cliente CADASTRADO com sucesso";
	
	
		echo $msg;
			
    	mysql_close($con);
?>

<div id="geral">
		    
<div id="conteudo">

    <div class="form">
    <form action="javascript: enviaForm('cadastro', 'cadastro/form_inscricao.php','conteudo');" name="cadastro" id="cadastro" method="post" onSubmit="return validar()">
    	
		<div>
           <input type="hidden" name="ano_ciaa" id="ano_ciaa" size="5" value="2010"/>
        </div>
        
        <div>
    		<span class="campos_div_esq">Nome:</span>
    	    <span class="input">
           	<input type="text" name="nome" size="35" id="nome"/>
            </span><br /><br />
            
            <span class="campo_rg"> R.G: </span>
            <span class="input">
            <input type="text" name="rg" id="rg" />
            </span>
            
            <span class="txt_tabela">CPF: </span>
            <input type="text" name="cpf" id="cpf" /><br /><br />
            
                   
          <input type="submit" value="Enviar" ONCLICK="valida (this.form)" />

        </div>
        </form>
        </div>
        </div>
        </div>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque sua variável:

$msg = "Cliente CADASTRADO com sucesso";

Está fora das condições que você fez.

É só colocar entro do Else.

 


$busca_cpf = "SELECT * FROM participantes WHERE cpf='$cpf'"; //fazendo a pesquisa
$res_busca_cpf = mysql_query($busca_cpf); //realizando a requisição
$linha = mysql_fetch_row($res_busca_cpf);

if($linha > 0)
{
   $nome = "$resultado[1]";
   $msg = 'Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:'. $nome;
   echo "<meta http-equiv='refresh' content='3;url=form_inscricao.php'>";
}
else
{
	$sql = "INSERT INTO participantes(nome, rg, cpf) VALUES('$nome','$rg','$cpf')";					   
	$rs  = mysql_query($sql,$con) or die (mysql_error());
	$msg = "Cliente CADASTRADO com sucesso";
}  

echo $msg;

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque sua variável:

$msg = "Cliente CADASTRADO com sucesso";

Está fora das condições que você fez.

É só colocar entro do Else.

 


$busca_cpf = "SELECT * FROM participantes WHERE cpf='$cpf'"; //fazendo a pesquisa
$res_busca_cpf = mysql_query($busca_cpf); //realizando a requisição
$linha = mysql_fetch_row($res_busca_cpf);

if($linha > 0)
{
   $nome = "$resultado[1]";
   $msg = 'Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:'. $nome;
   echo "<meta http-equiv='refresh' content='3;url=form_inscricao.php'>";
}
else
{
	$sql = "INSERT INTO participantes(nome, rg, cpf) VALUES('$nome','$rg','$cpf')";					   
	$rs  = mysql_query($sql,$con) or die (mysql_error());
	$msg = "Cliente CADASTRADO com sucesso";
}  

echo $msg;

mais no caso você colocou um echo....para imprimir na tela a msg...eu quero colocar um alert p dps colocar foco no campo CPF....entendeu? p pessoa não ter q digitar td de novo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Haa entendi, desculpa.

Troca a linha então por esta:

echo "<script type='text/javascript'> 
         alert('Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:". $nome. "');
         document.cadastro.nome.focus();
      </script>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Haa entendi, desculpa.

Troca a linha então por esta:

echo "<script type='text/javascript'> 
         alert('Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:". $nome. "');
         document.cadastro.nome.focus();
      </script>";

ele não exibe o alerta....volta para o formulário....

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Haa entendi, desculpa.

Troca a linha então por esta:

echo "<script type='text/javascript'> 
         alert('Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:". $nome. "');
         document.cadastro.nome.focus();
      </script>";

ele não exibe o alerta....volta para o formulário....

 

 

Esta acontecendo o seguinte...fiz um teste....carreguei o form_inscrição.php....direto no navegador....fora da "div"....ele executa todos os JS....somente qnd carrego dentro da div q esta acontecendo isso...parece q não reconhece o JS....e tb esta retornando essa mgs Notice: Undefined index: nome variavel q se refere a

if($_GET['nome'] != "")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o que eu fiz:

<?php
	include "../include/conexao.php";
	if(isset($_GET['nome']) && $_GET['nome'] != "")
	{
		$nome = $_GET['nome'];
		$rg   = $_GET['rg'];
		$cpf  = $_GET['cpf'];

		/********************************************************
		Verifica se o CPF do participante já esta cadastrado
		*********************************************************/
		
		$busca_cpf = "SELECT * FROM participantes WHERE cpf='$cpf'"; //fazendo a pesquisa
		$res_busca_cpf = mysql_query($busca_cpf); //realizando a requisição
		$linha = mysql_fetch_row($res_busca_cpf);
		
		if($linha > 0)
		{
			$nome = mysql_result($res_busca_cpf,0,'nome');
			$msg = 'Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:'. $nome;
			echo "<script type='text/javascript'> 
					 alert('Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:". $nome. "');
					 document.cadastro.nome.focus();
				  </script>";		
		}
		else
		{
			$sql = "INSERT INTO participantes(nome, rg, cpf) VALUES('$nome','$rg','$cpf')";                                    
			$rs  = mysql_query($sql,$con) or die (mysql_error());
			$msg = "Cliente CADASTRADO com sucesso";
		}  

		echo $msg;
		mysql_close($con);
        }
?>

<div id="geral">

<div id="conteudo">

<div class="form">
<form action="javascript: enviaForm('cadastro', 'cadastro/form_inscricao.php','conteudo');" name="cadastro" id="cadastro" method="post" onsubmit="return validar()">
<div>
<input type="hidden" name="ano_ciaa" id="ano_ciaa" size="5" value="2010"/>
</div>

<div>
<span class="campos_div_esq">Nome:</span>
<span class="input">
<input type="text" name="nome" size="35" id="nome"/>
</span><br /><br />

<span class="campo_rg"> R.G: </span>
<span class="input">
<input type="text" name="rg" id="rg" />
</span>

<span class="txt_tabela">CPF: </span>
<input type="text" name="cpf" id="cpf" /><br /><br />


<input type="submit" value="Enviar" onclick="valida (this.form)" />

</div>
</form>
</div>
</div>
</div>
</div>

Só um detalhe, você falou do JS que parece que nao funciona né.

você tem que chamar o arquivo na página principal. você ja fez isso neh ? acho que você falou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o que eu fiz:

<?php
	include "../include/conexao.php";
	if(isset($_GET['nome']) && $_GET['nome'] != "")
	{
		$nome = $_GET['nome'];
		$rg   = $_GET['rg'];
		$cpf  = $_GET['cpf'];

		/********************************************************
		Verifica se o CPF do participante já esta cadastrado
		*********************************************************/
		
		$busca_cpf = "SELECT * FROM participantes WHERE cpf='$cpf'"; //fazendo a pesquisa
		$res_busca_cpf = mysql_query($busca_cpf); //realizando a requisição
		$linha = mysql_fetch_row($res_busca_cpf);
		
		if($linha > 0)
		{
			$nome = mysql_result($res_busca_cpf,0,'nome');
			$msg = 'Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:'. $nome;
			echo "<script type='text/javascript'> 
					 alert('Descupe mais você já deve ter realizado o curso em outro Ano! CPF já cadastrado!!! Para o participante:". $nome. "');
					 document.cadastro.nome.focus();
				  </script>";		
		}
		else
		{
			$sql = "INSERT INTO participantes(nome, rg, cpf) VALUES('$nome','$rg','$cpf')";                                    
			$rs  = mysql_query($sql,$con) or die (mysql_error());
			$msg = "Cliente CADASTRADO com sucesso";
		}  

		echo $msg;
		mysql_close($con);
        }
?>

<div id="geral">

<div id="conteudo">

<div class="form">
<form action="javascript: enviaForm('cadastro', 'cadastro/form_inscricao.php','conteudo');" name="cadastro" id="cadastro" method="post" onsubmit="return validar()">
<div>
<input type="hidden" name="ano_ciaa" id="ano_ciaa" size="5" value="2010"/>
</div>

<div>
<span class="campos_div_esq">Nome:</span>
<span class="input">
<input type="text" name="nome" size="35" id="nome"/>
</span><br /><br />

<span class="campo_rg"> R.G: </span>
<span class="input">
<input type="text" name="rg" id="rg" />
</span>

<span class="txt_tabela">CPF: </span>
<input type="text" name="cpf" id="cpf" /><br /><br />


<input type="submit" value="Enviar" onclick="valida (this.form)" />

</div>
</form>
</div>
</div>
</div>
</div>

Só um detalhe, você falou do JS que parece que nao funciona né.

você tem que chamar o arquivo na página principal. você ja fez isso neh ? acho que você falou.

 

o JS esta na página principal sim....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse trecho do PHP você colocou antes de todo o HTML ?

Se não, coloque.

 

Coloquei antes de todo o HTML...o alert ainda não é mostrado...

 

 

Esse trecho do PHP você colocou antes de todo o HTML ?

Se não, coloque.

 

Coloquei antes de todo o HTML...o alert ainda não é mostrado...

 

pode ser o fato de eu estar usando ajax....p carregar um form dentro de uma div?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entãoo... talvez sim. Porque eu nao testei aqui, só testei o alert em PHP, mas nao como você ta fazendo.

Você está fazendo uma página idêntica a uma que eu já fiz.

 

Mas eu nao usei JS para alertar, usei mensagem mesmo. =)

Acho que não é necessário... pelo menos no meu caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entãoo... talvez sim. Porque eu nao testei aqui, só testei o alert em PHP, mas nao como você ta fazendo.

Você está fazendo uma página idêntica a uma que eu já fiz.

 

Mas eu nao usei JS para alertar, usei mensagem mesmo. =)

Acho que não é necessário... pelo menos no meu caso.

 

É q tipo....o formulário é grande....por exemplo a pessoa começa a digitar, entra c todos os dados e por discuido digita o CPF errado e vamos pensar q esse CPF já esta no banco...qnd a pessoa clicar em enviar vai retornar p página com a msg na tela....só que todos os dados foram apagados......é como se desse um "F5" na página....não pode ser pelo fato de estar passando assim

<form action="javascript: enviaForm('cadastro', 'cadastro/form_inscricao.php','conteudo');" name="cadastro" id="cadastro" method="post" onsubmit="return validar()">
, ou seja estou enviando p a msm página....?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi

Que coisa =/

 

Tem como você fazer a verificação logo após digitar o CPF. Dae você nao vai ter mais esse problema.

Usa AJAX tbm. woieowie

Aqui no forum tem, no lab de scripts.

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.