Ir para conteúdo

Arquivado

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

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>

Compartilhar este post


Link para o post
Compartilhar em outros 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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por luiz monteiro
      Bom dia!
       
      A questão é a seguinte, tenho o seguinte form 
       
      <form onsubmit="return false;" action="./busca.php" method="post" name="buscar" id="buscar">
       
                 <input type="text" name="texto">
       
                <button>Executa</button>
       
      </form>
       
      Que está funcionando perfeitamente com a seguinte estrutura do script abaixo
       
        var form = document.getElementById('buscar');
       
        form.addEventListener('submit', function(e)
        {
            e.preventDefault();
       });
       
       
      O que preciso, é saber como submeter esse mesmo formulário ao clicar em button fora do form sem modificar esse script?
       
      <button id="fora_do_form">Submeter o form</button>
       
       
      Agradeço desde já!
       
       
    • Por GOD
      Quero pegar o dado:
      CHEGADA e SAÍDA do form 1 e colocar para ser exibido no campo;
      DATAS DA ESTADIA no form 2.
      e
      ADULTO E CRIANÇA também do form 1 para o form 2
      Como faço isso sem utilizar banco de dado. Se possível somente com html, css. E se não for possível pode entrar o Javascript ou como possível for. 
       
      Desde já agradeço. 
       
       
      Form 1
       
       
      <!DOCTYPE html> <html> <head> <!---------------------------------- FORMULARIO 1 ------------------------------------------------> <form class="reserva-form" action="" method="post"> <fieldset class="fiesdeset"> <div class="reserva-form-chegada"> <label class="reserva-form-chegada-label">Chegada ↴</label> <br /> <input type="date" /> </div> <div class="reserva-form-saida"> <label class="reserva-form-saida-label">Saida ↴</label> <br /> <input type="date" /> </div> <div class="reserva-form-adulto"> <label class="inicio" style="margin: 0">Adultos</label> <select name="ad" id="adultos"> <option value="1" selected="">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> </div> <div class="reserva-form-crianca"> <label class="inicio" style="margin: 0">Crianças</label> <select name="ch" id="nCrianca"> <option value="0" selected="selected">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> </div> <div class="reserva-form-pesquisar"> <button type="submit" class="botao-pesquisar type=" submit" id="bt-pesquisa" data-enabled="enabled"> Pesquisar </button> </div> <div class="reserva-form-check-in"> <a href="form-cadastro.html" class="botao-checkin" target="_blank">Pré-checkin</a> </div> </fieldset> </form> </body> </html>  
       
      Form 2
       
       
      <!DOCTYPE html> <html> <head> <!------------------------------ FORMULARIO 2 ---------------------------------------------------> <form class="reserva-form" action="" method="post"> <fieldset class="fiesdeset"> <div class="reserva-form-estadia"> <label class="reserva-form-estadia-label">DATAS DA ESTADIA ↴</label> <br /> <input type="text" name="estadia" value="10/06/2022 - 10/07/2022" /> </div> <div class="reserva-form-quarto"> <label class="reserva-form-quarto-label">   QUARTOS E HÓSPEDES ↴</label> <br> <label class="inicio">  Nº de Quartos</label> <select name="ad" id="quarto"> <option value="1" selected="">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> </div> <div class="reserva-form-adulto"> <label class="inicio">Adultos</label> <select name="ad" id="adultos"> <option value="1" selected="">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> </div> <div class="reserva-form-crianca"> <label class="inicio" style="margin: 0">Crianças</label> <select name="ch" id="nCrianca"> <option value="0" selected="selected">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> </div> <div class="reserva-form-crianca"> <label class="inicio">&nbsp Nº de Crianças 0 aos 12 Anos</label> <select name="ch" id="nCrianca"> <option value="0" selected="selected">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> </div> <div class="reserva-form-pesquisar"> <button type="submit" class="botao-pesquisar type=" submit" id="bt-pesquisa" data-enabled="enabled"> Buscar </button> </div> </fieldset> </form> </body> </html>  
    • Por eduardodsilvaq
      Erro retornado no console do navegador: 400 bad request
      Rastreei o erro ate essa parte no arquivo admin-ajax.php mudando o valor de resposta de 0 para 1:
      if ( is_user_logged_in() ) { // If no action is registered, return a Bad Request response. if ( ! has_action( "wp_ajax_{$action}" ) ) { wp_die( '0', 400 ); } Tentei de tudo, mas infelizmente nao entendi oq realmente significa esse login e como ele funciona.
      Vi algumas pessoas tendo problema com o host, no meu caso estou usando hostinger. (Nao creio que isso e relevante mas ta ai.)
       
      Código utilizado:
       
      Javascript
      function formValidation() { event.preventDefault(); var name = document.forms["contactForm"]["name"].value; var email = document.forms["contactForm"]["email"].value; var subject = document.forms["contactForm"]["subject"].value; var message = document.forms["contactForm"]["message"].value; document.getElementById('status').innerHTML = ''; var errorMessage="<span class='error'>All fields are required.</span>"; var regEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if (name.trim() == "" ||email.trim() == "" || subject.trim() == "" || message.trim() == "") { document.getElementById('status').innerHTML = errorMessage; return false; } if (!regEx.test(email)) { var errorMessage="<span class='error'>Invalid email.</span>"; document.getElementById('status').innerHTML = errorMessage; return false; } processContactSubmit(); return true; } function processContactSubmit() { var request = new XMLHttpRequest(); request.open("POST", "/wp-admin/admin-ajax.php?action=process_contact_form"); request.onreadystatechange = function() { if(this.readyState === 4 && this.status === 200) { document.getElementById("status").innerHTML = this.responseText; } }; var myForm = document.getElementById("contactForm"); var formData = new FormData(contactForm); request.send(formData); } functions.php
      add_action('wp_ajax_nopriv_process_contact_form', 'process_contact_form'); add_action('wp_ajax_process_contact_form', 'process_contact_form'); //Retirar essa parte para error no console, no contrario ira aparecer no navegador o numero 0. function process_contact_form() { $to = "Recipient Email Address"; $subject = $_POST["subject"]; $headers = "Testing"; $message = $_POST["message"]; $attachments = ""; $sent = wp_mail($to, $subject, $message, $headers, $attachments); if (! $sent) { echo "<span class='error'>Problem in sending mail.</span>"; } else { echo "<span class='success'>Hi, thank you for the message.</span>"; } wp_die(); } Html
      <form name="contactForm" id="contactForm" method="post" onsubmit="return formValidation()" action=""> <p class="comment-form-comment"><textarea id="message" name="message" required="" placeholder="" aria-required="true"></textarea></p> <p class="comment-form-author"><label for="author">Nome: </label> <input id="name" name="name" required="" size="30" type="text" value=" " /></p> <p class="comment-form-author about"><label for="author">Assunto: </label> <input id="subject" name="subject" required="" size="40" type="text" value=" " /></p> <p class="comment-form-email"><label for="email">Email: </label> <input id="email" name="email" required="" size="30" type="text" value="" /></p> <p class="form-submit"><input id="submit" class="submit" name="email_contato" type="submit" value="Enviar" /></p> </form>&nbsp; <h3><div id="status"></div></h3>  
    • Por babylon
      Ola amigos,
       
      Estava querendo criar algo para meu site, um botao igual do site abaixo para calcular formas de pagamento "ver formas de pagamento":
       
      https://www.chipart.com.br/pc-gamer-level-one-black-amd-3400g
       
      Segue imagem em anexo.
       
      Alguem poderia me ajudar se tem algum script algo pronto ou que ajude para abrir pop up modal?
       
      Obrigado a todos.
       
       

    • Por unset
      Olá, estou com uma falha de lógica pegando aqui se alguém puder ajudar
       
      Eu tenho um formulário tranquilo, como abaixo
      <label for="cidades" class="form-label">Cidades</label> <select class="form-select mb-3" name="cidades[]" id="cidades" multiple="multiple"> <option value="1">Cidade 1</option> <option value="2">Cidade 2</option> <option value="3">Cidade 3</option> <option value="4">Cidade 4</option> <option value="5">Cidade 5</option> </select>  
      Blz eu recebe os dados do formulário ou seja os ids da cidade certinho em um array 
       
      array(3) { [0]=> string(1) "2" [1]=> string(2) "3" [1]=> string(1) "5" }
      <?php $dados = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRIPPED); var_dump($dados); ?> Agora como inserir todos os ids no banco? utilizando um for? um while? algum exemplo?
       
      Pergunto pq ao tentar inserir no banco somente um registro é inserido e não todos do select
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.