Ir para conteúdo

POWERED BY:

Arquivado

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

rica mourao

[Resolvido] Validação de formulário PHP

Recommended Posts

Pessoal,

 

Acredito que seja uma dúvida boba.

 

Tenho um formulário que o usuário preenche e salva as informações no banco de dados.

Algumas vezes, acontece na hora de validar e salvar os dados o usuário digitou informações incorretas ou esqueceu de digitar algo. Logo em seguida uma mensagem de erro é exibida.

 

O usuário deve voltar a página anterior e preencher as informações com problemas novamente.

 

O problema é que quando ele volta a página anterior os dados preenchidos são perdidos.

 

Como fazer para que os dados preenchidos sejam mantidos e somente o campo problemático seja preenchido?

 

Outra dúvida alguams vezes quando o usuário volta o navegador mostra uma mensagem de documento fora de validade.

 

O que isso significa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode tentar assim.

 

<?php

echo "<a href='javascript:history.back(1);'>Voltar</a>"; 

// Colocar essa linha abaixo do comando que valida os campos, para retornar na página anterior caso o campo foi preenchido incorretamente ou em branco.

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funcionou, o formulário continua trazendo em branco as informações.

 

Não teria que criar uma sessão com as variaveis que ele ja tinha digitado?

 

Sei lá, não tenho idéia de como fazer isso rsrs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arquivo com formulario

 

<form action="adicionar2.php" method="post" name="formulario" id="formulario">
 <p>Invoice: 
   <input name="invoice" type="text" class="textfieldcalendar" id="invoice" size="6" maxlength="6" >
   <br>

   Refaturar nota
   <select name="needreissue" class="textfieldcalendar" id="needreissue">
     <option value="1">SIM</option>
  <option value="3">SIM, atualizar depois/option>
     <option value="2">NAO</option>
   </select>
   <br>
   <br>

   <input name="Submit" type="submit" class="whitebutton2" value="cadastrar">
   <br>
 </p>
 </form>

 

Arquivo que reporta o erro:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Controle</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../others/formate.css" rel="stylesheet" type="text/css">

</head>

<body class="arial">
<p> </p>
<p> </p>
<p> </p>
<p><br>
</p>
<table width="353" border="1" align="center" cellpadding="7" cellspacing="0" bordercolor="#333333" bgcolor="#FFFFFF" style="border-collapse: collapse">
 <tr> 
   <td width="335" bgcolor="#333333"> <span class="arial"><font color="#FFFFFF"><strong>Warning</strong></font></span></td>
 </tr>
 <tr> 
   <td height="124"> 
     <table width="100%" border="0" cellpadding="5" cellspacing="0">
       <tr> 
         <td width="13%"><img src="../imgs/warning.jpg" width="48" height="48"></td>
         <td width="87%"><span class="arial"><strong>Dear,<br>
           </strong><br>
           O  campo <b> <?php echo $field;?></b> esta em branco.<br>
           <br>
          <a href="javascript:history.back(1);">voltar</a> </span> </td>
       </tr>
     </table></td>
 </tr>
</table>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
       <title>Controle</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
       <link href="../others/formate.css" rel="stylesheet" type="text/css">

</head>

<body class="arial">
<p> </p>
<p> </p>
<p> </p>
<p><br>
</p>
<table width="353" border="1" align="center" cellpadding="7" cellspacing="0" bordercolor="#333333" bgcolor="#FFFFFF" style="border-collapse: collapse">
 <tr> 
   <td width="335" bgcolor="#333333"> <span class="arial"><font color="#FFFFFF"><strong>Warning</strong></font></span></td>
 </tr>
 <tr> 
   <td height="124"> 
     <table width="100%" border="0" cellpadding="5" cellspacing="0">
       <tr> 
         <td width="13%"><img src="../imgs/warning.jpg" width="48" height="48"></td>
         <td width="87%"><span class="arial"><strong>Dear,<br>
           </strong><br>

<?php
$field = $_POST['needreissue']; // Caso tiver mais campos, você terá que criar mais variáveis para receber o mesmo.
if(empty($field)) { // E criar mais if(empty()) para validar também.
echo "O  campo esta em branco. <a href='javascript:history.back(1);'>Clique aqui</a> para voltar."; // Aqui dará a mensagem se o campo estiver vazio.
} else {
echo "Campo preenchido"; // Aqui dará a mensagem ou a função se o campo tiver preenchido.
}
?>
           </span> </td>
       </tr>
     </table></td>
 </tr>
</table>
</body>
</html>

 

No seu select, a parte do option está faltando o fechamento do mesmo.

 

<option value="3">SIM, atualizar depois</option>

 

Acima a correção da parte com problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matheus,

 

Testei com os dados que você me passou funcionou.

 

Estilos css e javascripts no formulário pode resultar nesse cenário dele não recuperar os valores?

 

Estou reconstruindo o formulário do zero pra ver onde estou errando (vai dá trabalho rsrs).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

 

Você tambem pode gerar uma session e salvar na sessão todos os dados do banco e recuperar depois.

É uma alternativa trabalhosa, mas fica muito bom.

 

abç

 

Wilson C. Savegnago

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que você não faz as validações tudo em javascript coloca no onsubmit do form um return e chama uma função que valida os campos e retorna um valor booleano, com isso você não precisa requisitar pro servidor já trata tudo no cliente:

 

<form id="searchForm" method="POST" action="" onsubmit="return ValidaDados()";>	


function ValidaDados()
 {
   var valor = document.getElementById('s');
   if (valor)
   {
      if (($.trim(valor.value) == '') || (valor.value =='Buscar'))
   {
      alert('O Campo Busca é Obrigatório!');
      valor.focus();
      return false;
   }
   }
 }

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.