Ir para conteúdo

POWERED BY:

Arquivado

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

Dário Cardoso

[Resolvido] Como nao apagar os dados quando voltar

Recommended Posts

OLA PESSOAL

 

BOM, ESTOU SEGUINDO COM MEUS ESTUDOS EM PHP... RERE

 

É O SEGUINTE:

Digamos que eu preencho um formulario de cadastro qualquer, depois de preencher o maldito formulario digamos que eu esqueci de algum campo, daí ao clicar em CADASTRAR aparecerá uma mensagem HTML dizendo que eu não preenchi tal campo, então clico em VOLTAR e o que acontece? simplismente SUMIU TUDO O QUE DIGITEI http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif

EU GOSTARIA DE SABER COMO FAÇO PRA QUE OS DADOS NAS input ou area NÃO APAGUEM QUANDO VOLTAR.

Lembrando que estou usando php pra validar, ou seja, cadastro.php chama cadastro_valida.php

 

POR FAVOR!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use JavaScript para validação de dados..

mas caso você tenha preconceitos contra javaScrip...

 

Envie todos valores para as variáveis..

e dentro do seu Form.. faça;

 

 

<input type="text" name="nome_do_cara" value="<?=$_REQUEST['nome'];?>">

Caso existir ele coloca um value que já existe..

se não existir.. não coloca nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use javascript para fazer a validação do formulário ou faça com que a o histórico volte 1 pagina

 

 

if($erro){
?>//sai do php
<script type="text/javascript">
window.history.back(1);
</script>
<?php
exit; //IMPORTANTE PARA QUE O RESTO DO CÓDIGO NÃO SEJA EXECUTADO;
}

Desse jeito, os dados ainda vão estar lá, mas eu recomendo aprender javascript para fazer a validação do formulário, caso você não saiba.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PUTZ, q treco loco, v só: SE EU TIRAR O include("protecao.php"); da página que tem o formulario dá tudo certo, ou seja, ao clicar em VOLTAR os dados permanecem lá, estranho não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dário; Quando você abrir o cadastro_valida.php, você envia as variáveis para validação GET ou POST correto^^?

 

use estes mesmos valores para Enviar de volta os valores.

ex:

 

 

header("Location :cadastro.php?nome=".$_REQUEST['nome']);

Cara.. para eu lhe ajudar melhor. faça um favorzinho.

poste os arquivos cadastro.php e cadastro_valida.php

 

ai eu vou conseguir ver o que você já fez e te ajudar melhor =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza RENATO, vou postar um CADASTRO DE LOJAS (pois só tem um campo, pra fica mais facil)

 

 

//FORM DE CADASTRO DE LOJAS==============================
<?php
	//## Verifica se o usuario foi autenticado
	include("protecao.php");
	//## Fazemos o require do arquivo com as config do banco de dados
	require("config.php");
?>

<?= $layout ?>

<html>

<body OnLoad="document.form1.sigla.focus();" bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<font color="#A6F543" face="Verdana" size="4">»</font><font color="000000" face="Verdana" size="4">CADASTRO DE LOJAS</font>
<font color="#A6F543" face="Verdana" size="4">«</font></td></tr>

</table>
<form name="form1" method="post" action="cadastro_lojas_add_efetua.php">
  <table width="573" border="0">
		  <tr>
			<td width="149"><div align="right">
				<font face="Verdana" size="2">Sigla da loja:</font></div></td>
			<td width="436"><font color="000000" size="2" face="Verdana">
			  <input type="text" name="sigla" id="sigla" size="30" onkeyup="java script:this.value=this.value.toUpperCase();"></font>
			  <font face="Verdana" size="1" color="#FF0000">*</font></td>
		  </tr>
		  <tr>
		  <td> </td>
			<td>
			  <input type="submit" name="button" id="button" value="Cadastrar"></td>
		  </tr>
		  <tr>  
		   <td> </td>
			<td><font face="Verdana" size="1" color="#FF0000">* Campos obrigatórios</font></td>
		  </tr>
		  <tr>
			<td> </td>
			<td> </td>
		  </tr>
		</table>
		<p> </p>
</form>

</body>
</html>

 

 

//FAZ A VALIDAÇÃO E A INCLUSÃO DO QUE FOI DIGITADO NO FORM LOJAS (acima)
<?php
require("config.php");
?>

<?= $css ?>

<?php
//RECEBE OS VALUES DOS CAMPOS
$post_sigla_da_loja = $_POST['sigla'];

//TABELA E CAMPO DO BANCO
$tabela_db = "lojas";
$campo_db  = "sigla";

// Inicia a variavel de erro com valor ZERO
$error=0;

//#### INICIA A VERIFICAÇÃO DOS CAMPOS (DADOS)
echo "<br><font color='#FF0000' face='Verdana' size='4'>"; //Muda Fonte
if (empty($post_sigla_da_loja))
	{ echo "A Sigla da loja é obrigatório! <br>"; $erro=1; }

//ACEITA SOMENTE LETRAS MAIUSCULAS "." "espaço" "Ç" (sem acento) E NUMEROS
$valida_digitos = preg_match("@[^A-Z. Ç0-9]@", $post_sigla_da_loja) ? 'invalido' : 'ok';
if ($valida_digitos=="invalido")
	{ echo "Só é aceito LETRAS MAIUSCULAS SEM ACENTOS, PONTO, ESPAÇO e NÚMEROS! <BR> Exemplo: ANS24 ou DISTRIB. DE JARAGUA<br>"; $erro=1; }

if (strlen($post_sigla_da_loja)<3 <> (empty($post_sigla_da_loja)))
	{ echo "A Sigla da loja deve ter no minimo 3 caracteres! <br>"; $erro=1; }

if (strlen($post_sigla_da_loja)>40)
	{ echo "A Sigla da loja deve ter no maximo 40 caracteres! <br>"; $erro=1; }
//#### FIM A VERIFICAÇÃO DOS CAMPOS (DADOS)
	
	//Verifica se já existe o nome digitado no BD
	$se_existe=mysql_query("SELECT * FROM $tabela_db WHERE $campo_db='$post_fornecedor'");
	$conta_existente=mysql_num_rows($se_existe);
	
	//Caso existir o nome na SELECT acima, então será > 0
	if($conta_existente>0)
	{
	 echo "ESSE DADO JÁ ESTÁ CADASTRADO!<br><br>";
	 echo "<a href='cadastro_".$tabela_db."_add.php'>« Voltar</a> <br>";
	 exit; //Parar o carregamento do resto, pois existe o nome no BD
	}
	 else //Caso contrário, ou seja, se NÃO existir o nome no BD
		{
		 if ($erro==0) //Verifica NÃO TEVE valor 1 na variavel $erro
			{
			 $inserir=mysql_query("INSERT INTO $tabela_db (sigla) VALUES ('$post_sigla_da_loja')");
			 echo "<font color='#000000' face='Verdana' size='4'>CADASTRO REALIZADO! <br><br>";
			 echo "<a href='cadastro_".$tabela_db."_add.php'>« Voltar</a> <br>";
			}
			 else
				 {
				  // Caso o usuario tenha digitado algo errado ou não digitado algum campo, terá o valor 1 na variavel $erro, então:
				  echo "<br><a href='java script:history.back()'>« Voltar</a>";
				 }
	   }
	   echo "</font>";  //Fecha a tag da font que foi aberta lá em cima no inicio da verificação dos campos (dados)
?>

 

beleza RENATO? http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sabe ali no Arquivo onde ele verifica tudo e tem o Link para voltar? (cadastro_lojas_add_efetua.php)

 

troque por isto.

 

<a href=\"teste2.php?sigla=".$_REQUEST['sigla']."\">

ONDE

 

teste2.php

você troque pelo nome do arquivo onde você digitou a sigla da loja.

 

____________________________________________________

No arquivo Onde você digita a sigla troque esta:

<input type="text" name="sigla" id="sigla" size="30" onkeyup="java script:this.value=this.value.toUpperCase();">
Por esta:

<input type="text" name="sigla" id="sigla" size="30" onkeyup="java script:this.value=this.value.toUpperCase();" value="<?=$_REQUEST['sigla'];?>">

 

_____________________________________________________

 

/****************

***<changelog>***

* a primeira modificação no arquivo cadastro_lojas_add_efetua.php

* foi mudado o Link para voltar.. que no caso aconteçe:

* pega a variável utilizada para a validação e na query

* e retorna ela para o arquivo anterior.

* no arquivo 'index' do cadastro.

* tem:

*value="<?=$_REQUEST['sigla'];?>

* caso exista a variável Sigla... ele a coloca como value no input.

*

****************/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kraka velho deu certinho! fiz do jeito q tu me passou e ficou uma beleza.

MUITO OBRIGADO RENATO!

 

Mas só uma duvida: EU TEREI QUE FAZER ISSO PRA CADA CAMPO QUE EU TIVER?

TIPO ESSE ABAIXO?

EXEMPLO:

 

FORM ONDE CADASTRA (DIGAMOS QUE TEM 3 CAMPOS):

<input type="text" name="nome" value="<?= $_REQUEST['nome'];?>">
<input type="text" name="fone" value="<?= $_REQUEST['fone'];?>">
<input type="text" name="email" value="<?= $_REQUEST['email'];?>">

FORM QUE FAZ AS VALIDACOES E CADASTRA:

echo "<br><a href='cadastro_add.php?nome=".$_REQUEST['nome']."&fone=".$_REQUEST['fone']."&email=".$_REQUEST['email']."&'>« Voltar</a>";

É ISSO MESMO???? OU TERIA UM JEITO MAIS PRATICO???? ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim você tem que fazer isto em todos os campos .. para fazer este tipo de validação apenas com PHP. De outro modo não é possível .

 

 

Mais prático seria validar com JavaScript =D

 

tem um tutorial de como utilizar JavaScript para validar campos aqui no Imasters.

Procure e aprenda é bem mais fácil..

e AJAX também é uma saída.

rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra duvida pessoal????

 

COMO FAZER $_REQUEST['blablabla']; EM UM COMBO (caixa de seleção) ????

Já tentei colocar no OPTION assim: <option><?= $_REQUEST['blablabla'];?></option> , porem, duplica os valores! como resolver isso?

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.