Jump to content


Photo

Problema Com Formulário, Ao Retornar Perde Os Dados


  • Faça o login para participar
8 replies to this topic

#1 Diego Schiavenin

Diego Schiavenin

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 17/04/2007, 09:00

Olá pessoal, sou novo no fórum... :rolleyes:

Estou com um pequeno problema com formulários:

Tenho um site que tem vários includes, vários arquivos etc, para facilitar as mudanças nos mesmos...

Assim, tenho um formulário de cadastro de clientes, que é incluido no site, ex.: include "cad_cliente.php"; quando é camado pelo link index.php?cadastra_cliente=

No index.php tem um if:

[codebox]if ($_GET['cadastra_cliente']) {
include "cad_cliente.php"
}[/codebox]

Até ai está tudo certinho...

Mas assim, quando eu vou fazer os cadastros, alterações, tudo dá certo sem stress...
Mas o meu problema é quando uso o teste direto no php do cad_cliente.php.
Eu testo se o CNPJ, CPF etc, estão corretos, caso contrário eles estiverem errados, eu paro a execução e mostro um link voltar:

[codebox]if (!empty($_POST['cnpj'])){
if (!TestaCNPJ($_POST['cnpj'])){
echo "<b>O CNPJ: ".$_POST['cnpj'].", não é válido...</b><BR><a href=\"java script:history.go(-1);\">Voltar</a>";
include "baixo.php";
}
}[/codebox]

Ai está o problema, quando a pessoa clica em voltar, ele volta certinho, mas some todos os dados que estavam escritos no formulário, perde tudo, eu tentei fazer alguns testes, e parece que erro pode ser porque o formulário é incluido, mas gostaria de saber, se tem alguma maneira dele voltar sem perder os dados na tela anterior.

Aguardo a ajuda de vocês... :lol:

Valeu...
Diego.

#2 chipis

chipis

    24 Horas

  • Usuários
  • 439 posts
  • Sexo:Masculino
  • Localidade:Blumenau - SC

Posted 17/04/2007, 09:22

O que acontece é que voce faz a validaçãoem outra pagina e ao retornar
para cad_cliente.php ela carrega de novo ai o que foi digitado já era.
O mais correto seria fazer a validação em javascript.
segue:

function verifica(){
if(document.getElementById('cnpj').value =='')
document.getElementById('cnpj').value ='Campo vazio';
document.getElementById('cnpj').select();
return false;

if(document.getElementById('cnpj').value =='Campo vazio')
document.getElementById('cnpj').value ='Campo vazio';
document.getElementById('cnpj').select();
return false;

}

ou algo parecido, tenta ai ve se ajuda.
flws..

#3 Diego Schiavenin

Diego Schiavenin

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 17/04/2007, 10:02

O que acontece é que voce faz a validaçãoem outra pagina e ao retornar
para cad_cliente.php ela carrega de novo ai o que foi digitado já era.
O mais correto seria fazer a validação em javascript.
segue:

function verifica(){
if(document.getElementById('cnpj').value =='')
document.getElementById('cnpj').value ='Campo vazio';
document.getElementById('cnpj').select();
return false;

if(document.getElementById('cnpj').value =='Campo vazio')
document.getElementById('cnpj').value ='Campo vazio';
document.getElementById('cnpj').select();
return false;

}

ou algo parecido, tenta ai ve se ajuda.
flws..


Olha é isso que eu percebi mesmo, mas não posso fazer os testes com javascript, porque não é seguro né, e ainda eu tenho que testar se o cliente cadastrado já existe no sistema antes de cadastrar, ai isso coplica minha vida, pq. não vai ser feito em Ajax o sistema...
Será que tem alguma forma de mostrar esses dados sem que eles sumam daí?
Ou vou ter que mudar o sistema e usar as telas no sistema sem incluir? :blink:


Bom agora eu testei sem incluir o arquivo, eu uso o IE7. e mesmo assim quando volta some os dados...
Se enviar os dados, e voltar ele perde de qualquer maneira... muito estranho isso...

O que pode ser???

#4 chipis

chipis

    24 Horas

  • Usuários
  • 439 posts
  • Sexo:Masculino
  • Localidade:Blumenau - SC

Posted 17/04/2007, 10:04

mas não posso fazer os testes com javascript, porque não é seguro né

Sempre faço minhas validações com javascript e até hoje, tudo funciona direitinho.

Então o que vc pode fazer e fazer a validacao na mesma pagina, e posts o que foi digitado no value="" de cada campo
<input type="tex" name="cnpj" value="<?=$_POST['cnpj'];?>" />, ai cada fez que o fromulario for submetido os
valores serão postados em seus devidos campos. Depois de inserir é so limpar os campos.
flws....

Edição feita por: chipis, 17/04/2007, 10:04.


#5 Diego Schiavenin

Diego Schiavenin

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 17/04/2007, 14:39

mas não posso fazer os testes com javascript, porque não é seguro né

Sempre faço minhas validações com javascript e até hoje, tudo funciona direitinho.

Então o que vc pode fazer e fazer a validacao na mesma pagina, e posts o que foi digitado no value="" de cada campo
<input type="tex" name="cnpj" value="<?=$_POST['cnpj'];?>" />, ai cada fez que o fromulario for submetido os
valores serão postados em seus devidos campos. Depois de inserir é so limpar os campos.
flws....


Não que o javascript não é seguro, é que se o usuário desabilitar o javascript no browser, o mesmo não vai funcionar, mas sem stress...

Eu faço isso mesmo: "<input type="tex" name="cnpj" value="<?php echo $cnpj; ?>" />"
Só que tirei ele do include, agora eu só tenho alguns includes acima e abaixo dele, mas o erro continua, quando volta a tela os dados somem do formulário, isso é muito estranho...
Agora uso o arquivo direto: cad_cliente.php e continua sumindo os dados quando volta a tela...

Mais alguém ai que pode ajudar no caso?
Valeu...

#6 chipis

chipis

    24 Horas

  • Usuários
  • 439 posts
  • Sexo:Masculino
  • Localidade:Blumenau - SC

Posted 17/04/2007, 14:51

voce tem que posta os dados:

<input type="tex" name="cnpj" value="<?=$_POST['cnpj']; ?>" />


tenta ai....

#7 Diego Schiavenin

Diego Schiavenin

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 17/04/2007, 17:43

Usei para testar assim tbm: <input type="tex" name="cnpj" value="<?=$_POST['cnpj']; ?>" />

Quando volta, continua sem os dados...

Não tem maneira de fazer funcionar isso ai, que treco mais loco...

Tentei de tudo já...

Escreve o cnpj, envia os dados, testa, se da erro clica em um botão para voltar: java script:history.go(-1); e quando volta o campo está em branco... :huh:

Não sei mais o que fazer... :huh:

#8 chipis

chipis

    24 Horas

  • Usuários
  • 439 posts
  • Sexo:Masculino
  • Localidade:Blumenau - SC

Posted 17/04/2007, 17:59

Cara faz a verificao na mesma pagina, ai vc não prescisa voltar, testei aqui e funcou segue:

<?
$msg = '';
if($_POST['vai']){

$teste = $_POST['teste'];
$outro = $_POST['outro'];
if(empty($teste)){
	$msg = 'nao vale em branco!';
}elseif(empty($outro)){
	$msg = 'nao vale outro  em branco!';
}else{
$msg = 'foi agora';
}
}
print $msg;
?>
<form action="?" method="post" name="formulario">
<input name="teste" type="text" value="<?=$_POST['teste'];?>" />
<input type="text" name="outro" value="<?=$_POST['outro'];?>" />
<input name="vai" type="submit" />
</form>

ve se ajuda..

#9 Diego Schiavenin

Diego Schiavenin

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 17/04/2007, 18:03

Puts, nesse caso funcionou...

Vou tentar ver meu código novamente então, mas pelo o que eu vi, está tudo igual no conceito, a não ser que eu estou fazendo algo errado...

Valeu...

T+




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq