Ir para conteúdo

POWERED BY:

Arquivado

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

leovargas

guardar value do Select em variável PHP

Recommended Posts

Olá Pessoal, sou novo no fórum e conheço o nível de conhecimento da galera daqui, sei que sabem do assunto e ajudam muita gente. Desta vez estou precisando de ajuda em resolver um problema na programação que estou fazendo.

 

Preciso pegar os dados de um formulário, guardar as informações nas variáveis PHP, escrevê-las no corpo do email e enviar. Até aí tudo bem, todas estão funcionando, escrevendo e enviando, porém no formulário tem um select (List/Menu), esse campo, a variável não pega nem com reza braba. Abaixo a minha programação pra alguma boa alma disposta a ajudar. :)

 

Primeiro o conteúdo do Select:

 

<select name="txtQuarto" ID="txtQuarto">
<option value="-- Selecione --" selected>-- Selecione --</option>
<option value="Suíte para casal - R$140,00">Suíte para casal - R$140,00</option>
<option value="Quarto com 04 camas - R$60,00">Quarto com 04 camas - R$60,00</option>
<option value="Quarto com 06 camas - R$60,00">Quarto com 06 camas - R$60,00</option>
<option value="Quarto com 06 camas e WC Privativo - R$70,00">Quarto com 06 camas e WC Privativo - R$70,00</option>
<option value="Quarto com 08 camas e Terraço - R$55,00">Quarto com 08 camas e Terraço - R$55,00</option>
<option value="Quarto com 08 camas, WC privativo e Terraço - R$75,00">Quarto com 08 camas, WC privativo e Terraço - R$75,00</option>
</select>
Abaixo a programação do botão pra "Enviar"
<script>
/* *** code by gnomoverde ** */
$("button.btnSend").on("click",function() {
var error = 0;
var nome = $("form input[name=txtName]").val();
var email = $("form input[name=txtEmail]").val();
var acompanhante = $("form input[name=txtAcomp]").val();
var endereco = $("form input[name=txtEnd]").val();
var pais = $("form input[name=txtPais]").val();
var cidade = $("form input[name=txtCidade]").val();
var cep = $("form input[name=txtCep]").val();
var telefone = $("form input[name=txtTel]").val();
var fax = $("form input[name=txtFax]").val();
var data_chegada = $("form input[name=txtCheckin]").val();
var data_saida = $("form input[name=txtCheckout]").val();
var quarto = $("form input[name=txtQuarto]").val(); <-----------------essa que não guarda a informação
var cartao = $("form input[name=txtCartao]").val();
var numero_cartao = $("form input[name=txtNumCartao]").val();
var titular_cartao = $("form input[name=txtTitNome]").val();
var validade_cartao = $("form input[name=txtValidade]").val();
var codigo_cartao = $("form input[name=TxtCode]").val();
if(error == 0) {
/* Carregando Dialog */
$.ajax({
url : './reservas.php',
data : { nome:nome,email:email,acompanhante:acompanhante,endereco:endereco,pais:pais,cidade:cidade,cep:cep,telefone:telefone,fax:fax,data_chegada:data_chegada,data_saida:data_saida,quarto:quarto,cartao:cartao,numero_cartao:numero_cartao,titular_cartao:titular_cartao,validade_cartao:validade_cartao,codigo_cartao:codigo_cartao },
method : 'GET',
beforeSend: function()
{
$("button.btnSend").html("Enviando Mensagem..");
//$(".ajax-loader").show(100);
},
complete: function()
{
},
success : function(html)
{
if(html == 1) {
$("button.btnSend").html("Mensagem Enviada!");
//$(".ajax-loader").hide(100);
$('form').each (function(){
this.reset();
});
} else {
$("button.btnSend").html("Tente novamente.");
//$(".ajax-loader").hide(100);
}
}
}); /* end ajax */
} /* end error */
else {
$("button.btnSend").html("Enviar Mensagem");
}
});
</script>

E aqui a programação do arquivo reservas.php, que o botão chama no on click.

 

<?php
$nome = $_GET["nome"];
$email = $_GET["email"];
$acompanhante = $_GET["acompanhante"];
$endereco = $_GET["endereco"];
$pais = $_GET["pais"];
$cidade = $_GET["cidade"];
$cep = $_GET["cep"];
$telefone = $_GET["telefone"];
$fax = $_GET["fax"];
$data_chegada = $_GET["data_chegada"];
$data_saida = $_GET["data_saida"];
$quarto = $_GET["quarto"];
$cartao = $_GET["cartao"];
$numero_cartao = $_GET["numero_cartao"];
$titular_cartao = $_GET["titular_cartao"];
$validade_cartao = $_GET["validade_cartao"];
$codigo_cartao = $_GET["codigo_cartao"];
$body = "";
$body .= " Nome: ".$nome." <br />";
$body .= " Email: ".$email." <br />";
$body .= " Acompanhante: ".$acompanhante." <br />";
$body .= " Endereço: ".$endereco." <br />";
$body .= " País: ".$pais." <br />";
$body .= " Cidade: ".$cidade." <br />";
$body .= " Cep: ".$cep." <br />";
$body .= " Telefone: ".$telefone." <br />";
$body .= " Fax: ".$fax." <br />";
$body .= " Data de Chegada: ".$data_chegada." <br />";
$body .= " Data de Saída: ".$data_saida." <br />";
$body .= " Quarto: ".$quarto." <br />";
$body .= " Cartão: ".$cartao." <br />";
$body .= " Número do Cartão: ".$numero_cartao." <br />";
$body .= " Titular do Cartão: ".$titular_cartao." <br />";
$body .= " Validade: ".$validade_cartao." <br />";
$body .= " Código do Cartão: ".$codigo_cartao." <br />";
$re = enviar_email($_GET["nome"],$_GET["email"],"leonardovargas21@gmail.com","Formulário de Reserva ($nome)",$body);
echo $re;
function enviar_email($remetente,$email_remetente,$destinatario,$assunto,$msg) {
/* Verifica qual é o sistema operacional do servidor para ajustar o cabeçalho de forma correta. Não alterar */
if(PHP_OS == "Linux") $quebra_linha = "\n"; //Se for Linux
elseif(PHP_OS == "WINNT") $quebra_linha = "\r\n"; // Se for Windows
else die("Este script nao esta preparado para funcionar com o sistema operacional de seu servidor");
// Passando os dados obtidos pelo formulário para as variáveis abaixo
$nomeremetente = $remetente;
$emailremetente = trim($email_remetente);
$emaildestinatario = trim($destinatario);
$comcopia = trim("");
$comcopiaoculta = trim("");
$mensagem = $msg;
$emailsender = $destinatario;
/* Montando a mensagem a ser enviada no corpo do e-mail. */
$mensagemHTML = ''.$mensagem.'';
/* Montando o cabeçalho da mensagem */
$headers = "MIME-Version: 1.1".$quebra_linha;
$headers .= "Content-type: text/html; charset=iso-8859-1".$quebra_linha;
$headers .= "From: ".$emailremetente.$quebra_linha;
$headers .= "Return-Path: " . $emaildestinatario . $quebra_linha;
/* Enviando a mensagem */
if(mail($emaildestinatario, $assunto, $mensagemHTML, $headers)) { return 1; }else { return 0; }
/* Mostrando na tela as informações enviadas por e-mail */
}
?>

 

O problema é a variável $quarto que não chega no email por nada, abaixo o resultado do email, do jeito que chega:

 

Nome: Leonardo
Email: teste@teste.com
Acompanhante: Acompanhante
Endereço: Endereço
País: País
Cidade: Cidade
Cep: CEP
Telefone: Telefone
Fax: Fax
Data de Chegada: chegada
Data de Saída: saída
Quarto:
Cartão: Visa
Número do Cartão: Cartão
Titular do Cartão: Titular
Validade: Válido
Código do Cartão: Code

 

Resumindo, todos os campos de texto chegam perfeitamente, somente o Select com a opção selecionada que não chega, que no caso é a variável $quarto. Alguém pode dar uma luz?

 

Agradeço muito pela ajuda.

 

Abraços!


Mais uma informação em relação ao problema, todas os campos são TextField e enviam normalmente, somente o Select que não manda. Eu estou usando o mesmo método tanto pros TextField quanto pro Select, esse provavelmente é o problema, poderiam dar uma luz no jeito de guardar a informação do Select na variável PHP $quarto?

 

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É simples, você esta chamando o selector "form input[name=txtQuarto]" ao invéz de "form select[name=txtQuarto]";

 

mude a var quarto para:

 

var quarto = $("form select[name=txtQuarto]").val();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu problema é de javascript....mas vamos lá..

var quarto = $("form input[name=txtQuarto]").val();  <-----------------essa que não guarda a informação
 

não guarda o valor porquê você está selecionando um input e não o select .

o correto seria

var quarto = $("#txtQuarto").val(); 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como diria o nosso amigo rockgo, Vivendo e aprendendo. Muito obrigado pessoal, sou ainda um pouco ignorante no assunto, mas graças a ajuda de vocês, tudo funcionou perfeitamente.

 

Valeu!

 

RESOLVIDO!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara, marcado como resolvido. Fica o meu agradecimento e humilde contribuição com a programação disponível pra qualquer membro que precisar, vocês são os caras! :clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, gostaria de incluir nesse PHP um comando para abrir uma página de obrigado após o envio do email.

 

Tudo está funcionando perfeitamente, mas estou novamente quebrando a cabeça. Abaixo segue o que estou fazendo pra ver se alguém pode dar uma luz.

 

<?php
$nome = $_GET["nome"];
$email = $_GET["email"];
$acompanhante = $_GET["acompanhante"];
$endereco = $_GET["endereco"];
$pais = $_GET["pais"];
$cidade = $_GET["cidade"];
$cep = $_GET["cep"];
$telefone = $_GET["telefone"];
$fax = $_GET["fax"];
$data_chegada = $_GET["data_chegada"];
$data_saida = $_GET["data_saida"];
$quarto = $_GET["quarto"];
$cartao = $_GET["cartao"];
$numero_cartao = $_GET["numero_cartao"];
$titular_cartao = $_GET["titular_cartao"];
$validade_cartao = $_GET["validade_cartao"];
$codigo_cartao = $_GET["codigo_cartao"];
$body = "";
$body .= " Nome: ".$nome." <br />";
$body .= " Email: ".$email." <br />";
$body .= " Acompanhante: ".$acompanhante." <br />";
$body .= " Endereço: ".$endereco." <br />";
$body .= " País: ".$pais." <br />";
$body .= " Cidade: ".$cidade." <br />";
$body .= " Cep: ".$cep." <br />";
$body .= " Telefone: ".$telefone." <br />";
$body .= " Fax: ".$fax." <br />";
$body .= " Data de Chegada: ".$data_chegada." <br />";
$body .= " Data de Saída: ".$data_saida." <br />";
$body .= " Quarto: ".$quarto." <br />";
$body .= " Cartão: ".$cartao." <br />";
$body .= " Número do Cartão: ".$numero_cartao." <br />";
$body .= " Titular do Cartão: ".$titular_cartao." <br />";
$body .= " Validade: ".$validade_cartao." <br />";
$body .= " Código do Cartão: ".$codigo_cartao." <br />";
$re = enviar_email($_GET["nome"],$_GET["email"],"leonardovargas21@gmail.com","Formulário de Reserva ($nome)",$body);
echo $re;
function enviar_email($remetente,$email_remetente,$destinatario,$assunto,$msg) {
/* Verifica qual é o sistema operacional do servidor para ajustar o cabeçalho de forma correta. Não alterar */
if(PHP_OS == "Linux") $quebra_linha = "\n"; //Se for Linux
elseif(PHP_OS == "WINNT") $quebra_linha = "\r\n"; // Se for Windows
else die("Este script nao esta preparado para funcionar com o sistema operacional de seu servidor");
// Passando os dados obtidos pelo formulário para as variáveis abaixo
$nomeremetente = $remetente;
$emailremetente = trim($email_remetente);
$emaildestinatario = trim($destinatario);
$comcopia = trim("");
$comcopiaoculta = trim("");
$mensagem = $msg;
$emailsender = $destinatario;
/* Montando a mensagem a ser enviada no corpo do e-mail. */
$mensagemHTML = ''.$mensagem.'';
/* Montando o cabeçalho da mensagem */
$headers = "MIME-Version: 1.1".$quebra_linha;
$headers .= "Content-type: text/html; charset=iso-8859-1".$quebra_linha;
$headers .= "From: ".$emailremetente.$quebra_linha;
$headers .= "Return-Path: " . $emaildestinatario . $quebra_linha;
/* Enviando a mensagem */
if(mail($emaildestinatario, $assunto, $mensagemHTML, $headers)) { return 1; }else { return 0;
echo "<script> window.location.href=’thanks.htm’</script>"; ------> Não sei se está no lugar certo e/ou escrito certo.
}
/* Mostrando na tela as informações enviadas por e-mail */
}
Estou usando o comando echo pra chamar a página thanks.htm, mas não vai por nada. Alguém pode dar uma ajuda, fico muito grato.
Um grande abraço!
Leonardo Vargas

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.