Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Meu Formulário de Email não tá buscando os dados
javascript
$(document).ready(function(){
$("a[rel=modal]").click( function(ev){
ev.preventDefault();
var id = $(this).attr("href");
var alturaTela = $(document).height();
var larguraTela = $(window).width();
//colocando o fundo preto
$('#mascara').css({'width':larguraTela,'height':alturaTela});
$('#mascara').fadeIn(1000);
$('#mascara').fadeTo("slow",0.8);
var left = ($(window).width() /2) - ( $(id).width() / 2 );
var top = $(window).scrollTop()+40;
$(id).css({'top':top,'left':left});
$(id).show();
});
});
php e formulário
<form id="" name="" method="post" action="" style=";">
...
<tr>
<td>
<label for="mensagem">Mensagem:</label><br />
<textarea name="mensagem" id="mensagem" ></textarea>
</td>
</tr>
<tr>
<td>
<a href="#modd" rel="modal"><button name="form_enviar_email">Enviar</button></a>
</td>
</tr>
</table>
</form>
<div class="window" id="modd">
<?php
if(isset($_POST['form_enviar_email'])){
$nome = "$_POST[nome]";
$email = "$_POST[email]";
$assunto = "$_POST[assunto]";
$mensagem = "$_POST[mensagem]"; $mensagem = nl2br($mensagem);
$receptor = "meu@email.com";
$header = "From: ". $Nome . " <" . $email . ">rn";
if (($nome == "") || ($email == "") || ($assunto == "") || ($mensagem == ""))
{
echo "<p><b>ATENÇÃO! TODOS OS CAMPOS DO FORMULÁRIO DEVEM SER PREENCHIDOS.</b></p>";
} echo "<p><b>OBRIGADO! MENSAGEM ENVIADA COM SUCESSO</b></p>";
else
echo "<p><b>O EMAIL FALHOU AO ENVIAR</b></p>";
}
echo $nome.'<br/>'.$email.'<br/>'.$assunto.'<br/>'.$mensagem;
}
?>obrigado pela resposta. mas o erro tá ocorrendo neste código:
<a href="#modd" rel="modal"><button name="form_enviar_email">Enviar</button></a>
que não tá acionando o formulário.Tenta assim:
>
Citar
<a href="#modd" rel="modal"><input type='submit' name="form_enviar_email value='Enviar'/></a>
Mas voce quer que esse formulario seja enviado para a mesma pagina mesmo ?? seu action esta vazioSim para a mesma pagina, onde vai tem um modal de confirmação.
Com esse código não funciona.
Aah, não prestei atenção em uma coisa, seu button ta dentro de uma tag <a>, quando você clica nela, você clica no <a>, não no buton, ou input, o <a> não tem como padrão submeter formulário.
Você precisa retirar o button da tag <a>, ou fazer algo com jQuery/JS pra enviar o form quando clicar em <a>, algo como:
$(document).on('click','.className_de_<a>',function(a){
$('.formulario').submit();
)}
Testa assim.
Se não der assim, tamo chegando perto kkOK, obrigado vou pesquisar sobre isso.
>
Em 2017-6-7 at 10:52, Paulo1016 disse:
OK, obrigado vou pesquisar sobre isso.
O problema todo é porque você está usando a tag <a></a> para enviar um formulário então os dados não são passados.
Para usar a jQuery para passar validar formulários não é necessário inserir o action e sim modificar o comportamento padrão de um formulários, pode ser feito com "return false;" na função que recebe os dados do formulário e repassa para um arquivo.
Veja o código Html com jquery:
Spoiler
<script type="text/javascript">
$(document).ready(function() {
$('.close').click(function () {
$('.valida').remove();
$('.abrir').slideToggle();
});
});
function postTese() {
var campo1 = $('input[name="campo1"]').val();
var campo2 = $('input[name="campo2"]').val();
$.ajax({
data: {campo1: campo1, campo2: campo2},
url: './teste.php',
dataType: 'html',
type: 'POST',
beforeSend: function () {
$('.mostrapost').html("<div class=\"valida\"></div>");
$('.abrir').slideToggle();
},
success: function (data) {
$('.mostrapost').html(data);
}
});
return false;
}
</script>
<form method="post" onsubmit="return postTese();">
<p>Digite alguma coisa aqui</p>
<input type="text" name="campo1">
<p>Digite outra coisa aqui</p>
<input type="text" name="campo2">
<br>
<button type="submit">Validar</button>
</form>
<div class="abrir" style="display: none; font-size: 2em; border: 1px solid #000">
<button class="close">Fechar</button>
<div class="mostrapost"></div>
</div>
No teste.php coloque assim para que veja:
Spoiler
<?php
var_dump($_POST);
Um amigo meu fez alguns vídeos tutoriais mostrando justamente esse tipo de aplicação com a jquery em janelas modais : [https://www.youtube.com/playlist?list=PLC60WB-CP2vqZNJXj6XWakU7tEDHb0RQ2](https://www.youtube.com/playlist?list=PLC60WB-CP2vqZNJXj6XWakU7tEDHb0RQ2)
>
6 minutos atrás, Paulo1016 disse:
>
Citar