Jump to content
joaonunofz

msgs de erro num form popup

Recommended Posts

Boa noite , eu ja consigo facilmente fazer login num form, apresentando os erros por debaixo do form ou então usando javascript apresentando por conseguinte as mensagens nas janelas que vão aparecendo......MAS...QUANDO CONSTRUI UM FORM NUM POPUP ISTO DEIXOU DE FUNCIONAR....OU SEJA...AS MSGS DE ERRO NEM SEQUER APARECEM, BEM COMO OPOPUP FORM FECHA!!!!
HÁ maneira dele permanecer apresentando as msgs de erro como se de um form simples se tratasse???

<?php

session_start();

//ligar a base dados
require 'ligacao_bd.php';

$erro = "";//mensagem de erro vazia ...

//verificar utilizador
if(isset($_REQUEST['botao']))
{
//definir as variaveis
$email = $_POST['email'];
$senha = $_POST['senha'];

//comparar as passwords da base dados com a do texBox em MD5
$senha_encriptada = md5($senha);

//query de consulta , analizar dados e resulatdo
$consulta = $ligacao->query("SELECT * FROM utilizadores WHERE email = '$email' AND senha = '$senha_encriptada' ");


$resultado = mysqli_fetch_array($consulta);

//Obrigatorio preencher todos os campos
if($email == "" || $senha == "")
{
$erro = "Os campos são de prenchimento obrigatorio!";
}

//se não retornar nenhuma linha em que todos os dados coincidem com os introduzidos no form de login...então mensagem de erro
elseif($email != $resultado['email'] && $senha != $resultado['senha'] )
{
$erro = "Email ou senha incorretos !";
}

//se houver uma linha em que todos os dados coincidem , inicia-se a ssessão...
else
{
$_SESSION['id'] = $resultado['id'];

$_SESSION['nome'] = $resultado['nome'];

$_SESSION['email'] = $email; //permite a sessão e ...

//direciona-se para a respectiva pagina
echo " <script> window.open('pagina_acesso.php','_self')</script> ";
}

//liberta a variavel damemoria
mysqli_free_result($consulta);

}

?>

<form name="login" action="" method="post">

Login
<hr />

<label for="mail">E-mail:</label> <br />
<input type="email" name="email" id="mail" /> <br />

<label for="pass">Senha:</label> <br />
<input type="password" name="senha" id="pass" autocomplete="off" /> <br /> <br />

<input type="submit" name="botao" value="Entrar" /> <br /> <br />


<?php echo $erro; ?>


</form>

----------------------------------------------------------------------------------------------------------------------------------------
AQUI NESTE EXEMPLO EM BAIXO O MELHOR QUE CONSEGUI FOI USANDO ALGUM Javascript PARA AS MENSAGENS DE ERRO....
FUNCIONA QD CLICO NO BOTAO E O EMAIL NAO ESTA INSERIDO...OU ENTÃO QD INSIRO UM EMAIL QUE EXISTE NA BASE DE DADOS...POREM SE EU INSERIR ALGUM EMAIL QUE NAO ESTEJA NA BASE DE DADOS, APARECE A MSG A AVISAR E O FORM NO POPUP, O POPUP PROPRIAMENTE DITO FECHA...!!!!
ESTE EXEMPLO FUNCIONA MAS NÃO É POR ISSO MUITO FUNCIONAL...HÁ ALGUMA SOLUÇÃO?OU É ERRO NA MINHA PROGRAMAÇÃO...EU ESTOU APRENDENDO SOZINHO PELA WEB.... :

<?php

if(isset($_REQUEST['enviar']))
{
require "ligacao_bd.php";

$email_newsletters = mysqli_real_escape_string($ligacao ,$_POST['email_newsletters']);

$busca_email = $ligacao->query("SELECT * FROM newsletters WHERE email = '$email_newsletters' ");
$resultado_email = mysqli_num_rows($busca_email);

if($resultado_email != 1)
{
echo '<script> alert("Esse email não existe !"); </script>';
}

elseif($resultado_email == 1)
{
$anular_subscricao = $ligacao->query("DELETE FROM newsletters WHERE email = '$email_newsletters' ");

echo '<script> alert("Newsletter cancelada com sucesso !") </script>';

}



}


?>

<style>
.submit{display:none;}
</style>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Popup 3</title>

<!--CSS-->
<link href="estilos.css" rel="stylesheet" type="text/css" />

<!--BIBLIOTECA Jquery-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function()
{
//MOSTRA O POPUP
$("#onclick").click(function(){
$("#logindiv").css("display", "block");
});
//AO CLICAR EM CANCELAR , FECHA O POPUP
$("#login #cancel").click(function(){
$(this).parent().parent().hide();
});

//Ao clicar na #envia que pertence ao BUTTON...ativa a classe .submit do imput type SUBMIT !
$("#envia").click(function(){
$(".submit").click()
});


});
</script>

<script type="text/javascript">

function valida(form) {

if(form.email_newsletters.value == "")
{

alert("Introduza o seu email !");

form.email.focus();
return false;
}


}
</script>

</head>

<body>




<div id="logindiv">
<form class="form" id="login" name="remove_newsletters" action="" method="post" onsubmit="return valida(this);">
<img src="imagens/cancelar.png" class="img" id="cancel" style="cursor:pointer" />

<h3>Anular newsletter</h3>
<hr />
<br />

<label for="email">Email <span>*</span></label> <br />
<input type="email" name="email_newsletters" id="email" autocomplete="on" placeholder="email" /> <br /> <br />

<input type="button" id="envia" value="Enviar" style="cursor:pointer"/>
<input type="submit" name="enviar" class="submit" />

<input type="button" id="cancel" value="Cancelar" style="cursor:pointer" /> <br />


</form>
</div>

<p id="onclick" style="cursor:pointer">Anular newsletters</p>

</body>
</html>

Share this post


Link to post
Share on other sites

Boa noite amigo, pode explicar melhor a tua necessidade?

ola boa noite, geralmente crio um form onde as msgs de erro de validação dos campos aparecem em javascript ou então no proprio form atraves de php......a minha duvida baseia-se que qd criei um form num popup, a coisa nao tem a mesma funcionalidade...ou seja o popup fecha sem mostrar as ditas msgs de validação.....enquanto se verifica em javascript os respectivos campos...a coisa funciona...mas quando faço uma query de consulta a uma base de dados...as mensagens do tipo: 'email nao existe na base de dados' , nao aparece no proprio form que neste caso aparece em popup....

 

<form>

textbox

 

submit

 

<?php echo $erro ?>

 

 

</form>

 

Percebe a minha questão?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By AndersonVSilva
      Bom dia Pessoal,
       
      Efetuei uma busca no forum e não encontrei alguma solução para meu problema.
       
      Tenho este form via HTML:
       
      <td><form id="form1" action="CallProc02.php" method="post"><input type="hidden" name="id" value="1" /></form></td> <td><input form="form1" type="text" name="DDDA" value="Ex: 75" /></td> <td><input form="form1" type="text" name="NumA" value="Ex: 982825441" /></td> <td><input form="form1" type="text" name="DtInit" value="Ex: 2018-01-01" /></td> <td><input form="form1" type="text" name="DtEnd" value="Ex: 2019-01-01" /></td> <td><input form="form1" type="submit" value="Enviar" /></td> E aqui está o código PHP:
      <?php $sDDDA = $_POST['DDDA']; $sNumA = $_POST['NumA']; $sDtInit = $_POST['DtInit']; $sDtEnd = $_POST['DtEnd']; $con = new PDO("mysql:host:IP;dbname=DB", "User", "Pass"); $stmt = $con->prepare("CALL NOC_cobranca_conecta_historico_msisdn(:qDDDA, :qNumA, :qDtInit, :qDtEnd) "); $stmt->bindParam(":qDDDA", $sDDDA, PDO::PARAM_STR, 3); $stmt->bindParam(":qNumA", $sNumA, PDO::PARAM_STR, 10); $stmt->bindParam(":qDtInit", $sDtInit, PDO::PARAM_STR, 12); $stmt->bindParam(":qDtEnd", $sDtEnd, PDO::PARAM_STR, 12); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($result) { echo "OK"; } else { echo "NOK - Report Development Team"; } ?> No Apache ele fica logando o erro ' PHP Notice:  Undefined index: NumA in /var/www/html/Consulta/CallProc02.php' .
       
      Alguém pode me dizer oque estou fazendo errado?
       
      Obrigado desde já pela ajuda.
    • By VictorPHP
      Bom dia Galera!

      Fiz uma tela de cadastro na aplicação usando popup. Para cadastro tudo certo, pois não preciso recolher informações.
      Para fazer a tela de update, precisava que quando clicasse no link "Editar" ele buscasse a linha que eu cliquei para editar, porem em todas as tentativas de resolver isso ele pegou somente a primeira linha, fora que colocando o html do popup nessa ordem, ele foi parar la no canto direito.

      Segue o codigo de uma das tentativas :

      // Aqui é onde faço o select com todos ativos da carteira em tabela, e a DIV popup é exibida quando clico no link Editar. Não sei se é o lugar correto mas foi o mais proximo que consegui de fazer funcionar. Porem como ja explicado sempre pega o primeiro valor em vez da linha que cliquei
      {ativo.map(row => (
      <tr>
      <input className="key" value={row._id} />
      <td>{row.ativo}</td>
      <td>{row.quantidade}</td>
      <td>{row.data_entrada}</td>
      <td>{row.valor_entrada}</td>
      <td>{row.data_saida}</td>
      <td>{row.valor_saida}</td>
      <td>R${row.valor_saida - row.valor_entrada}</td>
      <td><a onClick={edit}>Editar</a></td>

      <div className="popupedit">
      <div className="popupedit-content">
      <img src={close} alt="close" onClick={fechar} className="close" width="20px" height="20px"/>
      <center><input type="text" placeholder="Ativo"></input>
      <input type="text" placeholder="Lotes"></input>
      <div className="datacompra">
      <input type="date" placeholder="Data da Compra" className="data"></input>
      <input type="checkbox" className="check"></input><label className="check">Hoje</label>
      </div>
      <input type="text" placeholder="Valor da Compra"></input>
      <div className="datacompra">
      <input type="date" placeholder="Data da Compra" className="data"></input>
      <input type="checkbox" className="check"></input><label className="check">Hoje</label>
      </div>
      <input type="text" placeholder="Valor da Venda"></input> </center>
      <button className="button">Adicionar</button>
      </div>
      </div>
      </tr>


      // função que chama exibi o popup
      function edit(){
      document.querySelector(".popupedit").style.display = "flex";
      }
    • By asacap1000
      Salve Galera!!
      Estou com um problema que acredito que seja muito facil mas não estou conseguindo colocar no código.
       
      Tenho um formulário simples onde temos apenas um campo a ser preenchido, input file.
      estarei utilizando ele no celular para fotos de processos de conferência. O que preciso é que assim que constar dados no campo ele automaticamente executa o form para salvar.
      segue script;
       
      <form name="form" id="form"class="form-horizontal" action="" method="post"> <div class="form-group form-group-lg"> <div class="col-sm-12"> <input id="foto" name="foto" hidden="1" value="<?=$prot_foto?>" type="text" maxlength="200" > <input id="lote" name="lote" hidden="1" value="<?=$lote?>" type="text" maxlength="200" > <label for='selecaoarquivo' ><figure><svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="50" height="40" viewBox="0 0 512.000000 392.000000" preserveAspectRatio="xMidYMid meet"> <g transform="translate(0.000000,392.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none"> <path d="M1970 3073 l-151 -163 681 0 682 0 -19 24 c-10 14 -70 85 -133 160 l-115 134 -397 4 -397 3 -151 -162z m710 17 l0 -60 -190 0 -190 0 0 60 0 60 190 0 190 0 0 -60z"/> <path d="M3370 3005 l0 -95 240 0 240 0 0 95 0 95 -240 0 -240 0 0 -95z"/> <path d="M1154 2955 l-1 -45 224 0 223 0 0 45 0 45 -222 0 -223 0 -1 -45z"/> <path d="M1105 2829 c-114 -19 -200 -64 -266 -137 -85 -94 -116 -191 -126 -384 l-6 -128 713 0 713 0 72 68 c122 117 239 184 386 223 69 19 109 23 224 22 121 0 152 -4 228 -27 48 -14 118 -42 156 -61 78 -39 205 -137 248 -189 l28 -36 433 0 432 0 0 118 c0 123 -20 234 -56 304 -47 94 -138 168 -254 210 l-65 23 -1405 1 c-773 1 -1427 -2 -1455 -7z"/> <path d="M2715 2207 c-212 -23 -436 -233 -475 -446 -14 -78 -12 -196 5 -270 43 -181 197 -344 384 -408 52 -18 89 -23 171 -23 179 0 297 47 415 165 116 115 175 256 175 415 0 232 -158 458 -378 540 -68 26 -200 38 -297 27z"/> <path d="M712 1528 c5 -611 5 -613 63 -728 52 -102 125 -163 251 -207 l79 -28 1420 0 c1350 0 1423 1 1480 18 177 55 271 151 315 321 19 75 20 110 20 633 l0 553 -396 0 c-218 0 -394 -3 -392 -7 2 -5 15 -30 29 -58 54 -102 81 -210 86 -346 11 -261 -69 -472 -249 -651 -309 -311 -799 -341 -1140 -70 -167 133 -273 303 -314 503 -13 64 -15 114 -11 219 6 150 24 224 83 343 l34 67 -681 0 -680 0 3 -562z"/> </g> </svg></figure><h4>TIRAR FOTO</h4></label> <input type="file" id="selecaoarquivo" class="btn btn-danger" name="image[]" accept="image/*" capture="camera"> </div> </div><br> <p><br> <p> <button name="Cadastrar" id="cadastrar" value="Cadastrar" class="btn btn-success " type="Submit" onclick="javascript:document.getElementById('blanket').style.display = 'block';document.getElementById('aguarde').style.display = 'block';"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="25" viewBox="0 0 20 17"><path d="M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z"/></svg><h4>SALVAR FOTO</h4></button> </form> Se puderem me dar uma força nisso agradeço imensamente!!!
       
    • By fjuniorlira
      Pessoal estou construindo essa página: http://webe.cf/teste-cadastro Preciso que que no input "Conta" o dígito fique na mesma linha. Como posso fazer isso?
      SEGUE O CÓDIGO:
       
      <p> <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); font-weight: bold;">Conta:</span></big> <span style="color: rgb(255, 0, 0); font-weight: bold;">*</span><br/> <input type="text" required="required" size="35" name="conta" onkeypress="formatar('####-#', this)" pattern="[0-9.-]+$" maxlength="9" style="width: 300px; height: auto; font-family: Arial; font-size: 16px"> </p> <p> <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); font-weight: bold;"></span></span> <input type="text" required="required" size="35" name="digito" onkeypress="formatar('####-#', this)" pattern="[0-9.-]+$" maxlength="9" style="width: 39px; height: auto; font-family: Arial; font-size: 16px"> </p>  
    • By Rafaeloliveiraz
      Olá pessoal,
       
      Eu estou tentando criar uma variavel para fazer um checker no conteúdo do input de um form antes de realizar o envio... Por exemplo SE o conteúdo do campo começar com "http://facebook.com/..." ele faz o envio normalmente, porém caso o começo seja OUTRO preciso que substituia o valor preenchido por um valor padrão e ai realize o envio.
       
      Acredito que com if e else resolva meu problema, eu até criei o bloqueio para que o conteúdo não seja enviado se for diferente mas por algum motivo ele só está funcionando se a pessoa tentar enviar uma segunda vez, como se o bloquei só funcionasse após a pessoa realizar o primeiro envio, então acabei desativando. O códito está somente assim agora:
       
       
      <form action="" id="shortForm" method="post"> <div> <input type="text" name="url" id="url" size="60" value="http://" onfocus="clearText(this)" class="input round-left" /> <button class="input button round-right" id="create">Encurtar URL</button> </div> </form>  
       
      Este form é para um encurtador de URL, onde eu quero que somente URLs do meu site sejam encurtadas, e caso alguém utilize uma URL para outro site preciso que o form altere o link dessa pessoa para outro padrão sem que ela saiba...
       
      Eu até montei a função mas não estou sabendo como posso mesclar com o input do form:
       
      <!DOCTYPE html> <html> <body> <p>Mudar conteúdo de envio</p> <input id="url" type="text"> <button onclick="myFunction()">Encurtar</button> <p id="envio"></p> <script> function myFunction() { var link = document.getElementById("url").value; var text; // Se a URL estiver certa if (link === "http://meusite.com/...") { input = "Enviado sem alterações"; // Se a url for outra } else { input = "http://urlcorreta.com"; } document.getElementById("envio").innerHTML = input; } </script> </body> </html>  
      Alguém poderia me dizer se isso poderia funcionar e como eu deveria seguir para mesclar ambos?
       
      Obrigado.
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.