Jump to content
Sign in to follow this  
Julia.

Valor de option do select salvando no BD parcialmente.

Recommended Posts

Pessoal,

 

Estou fazendo um pequeno sistema de reserva de convites de uma determinada festa; ao selecionar o valor de convites de uma das opções (Quantidade de ingressos para Convidado Inf. Juvenil (15 a 17 anos)) retorna a disponibilidade de uma segunda opção (Quantidade de ingressos para Convidado (Acima de 18 anos)) da seguinte forma: Cada pessoa pode retirar 3 convites, nesses 3 estão inclusas as opções de 15 a 17 anos e acima de 18 anos. Ex: Caso eu pegue 1 convite de 15 a 17 anos, ainda posso pegar 0, 1 ou 2 de acima de 18 anos; e assim sucessivamente.

 

Até aí tudo ok, coloquei um script em javascript para fazer essa seleção e disponibilidade de convites explicada acima (15 a 17 e acima de 18 anos), aí é que está o problema: qualquer seleção que se faça no campo de 15 a 17 anos salva no BD tudo certo, mas ao selecionar as opções de 0 ou 1 (de 15 a 17 anos) e selecionar as opções disponíveis de acima de 18 anos, não salvam no BD (apenas a opção que foi selecionada em acima de 18 anos não salva).

 

Já analisei o código todo milhares de vezes, não faço ideia do que possa ser .. caso alguém possa me ajudar !

Caso a explicação tenha ficado confusa, me desculpem ! Perguntem a vontade .. Muito obrigada !

Vou colocar o código abaixo, já que não consigo achar aonde é o problema:

<?php
include('../config.php');
session_start();
setlocale(LC_ALL, "pt_BR", "pt_BR.iso-8859-1", "pt_BR.utf-8", "portuguese");
date_default_timezone_set('America/Sao_Paulo');
ini_set( 'display_errors', true );
error_reporting( E_ALL );
$acao = $_GET['acao'];
$filiado = $_POST['filiado'];
$c0a14 = $_POST['c0a14'];
$cacima18 = $_POST['cacima18'];
$cconvidado = $_POST['cconvidado'];
$estacionamento = $_POST['estacionamento'];
$c15a17 = $_POST['c15a17'];
?>

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" />

<!--script que mostra na tela a opção escolhida 15 a 17 anos -->		

<script type="text/javascript">
    function optionCheck()
	{
        var option = document.getElementById("c15a17").value;
        
		if(option == "0")
		{
            document.getElementById("hiddenDiv0").style.visibility ="visible";
        }
        if(option == "1")
		{
            document.getElementById("hiddenDiv1").style.visibility ="visible";
        }
		if(option == "2")
		{
            document.getElementById("hiddenDiv2").style.visibility ="visible";
        }
		if(option == "3")
		{
            document.getElementById("hiddenDiv3").style.visibility ="visible";
        }
    }
	

</script>
</head>

<?php
if ($acao == NULL || $acao == ''){
?>
<form id="form" class="form" name="form" action="ingresso.php?acao=finalizar" method="post" enctype="multipart/form-data" accept-charset="UTF-8">
    <h1>Ingressos Baile 2015</h1>
    <div class="content">
        <div class="intro"></div>
        <div id="section0" >
			
			<div class="field">
				<label for="estacionamento">Quantidade de convites de estacionamento: </label>
				<select id="estacionamento" name="estacionamento" required>
					<option value="0">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>
				</select>
			</div>
			
			<div class="field">
				<label for="cconvidado">Quantidade de ingressos de Convidado Especial: </label>
				<select id="cconvidado" name="cconvidado" required>
					<option value="0">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>
				</select>
			</div>
	
			<div class="field">
			<label for="filiado">Ingresso de Filiado:  </label>
				<select id="filiado" name="filiado" required>
					<option value="0">0</option><option value="1">1</option>
				</select>
			</div>
	
			<div class="field">
				<label for="c0a14">Quantidade de ingressos para Convidado Infantil (0 a 14 anos): </label>
				<select id="c0a14" name="c0a14" required>
					<option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option>
				</select>
			</div>
			
		    <div class="field">
				<label for="c15a17">Quantidade de ingressos para Convidado Inf. Juvenil (15 a 17 anos):</label>
				<select id="c15a17" name="c15a17" onchange="optionCheck()">
					<option value="">Selecione</option>
					<option value="0">0</option>  
					<option value="1">1</option>
					<option value="2">2</option>
					<option value="3">3</option>  
				</select>
			</div>
			

		
				<div id='hiddenDiv0' style='position:fixed;top:350px;left:28px;visibility:hidden;'>
					<label for='cacima18'>Quantidade de ingressos para Convidado (Acima de 18 anos): </label>
					<select id='cacima18' name='cacima18'>
						<option value='0'>0</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option>
					</select>
				</div>	
				
				<div id='hiddenDiv1' style='position:fixed;top:350px;left:28px;visibility:hidden;'>
					<label for='cacima18'>Quantidade de ingressos para Convidado (Acima de 18 anos): </label>
					<select id='cacima18' name='cacima18'>
						<option value='0'>0</option><option value='1'>1</option><option value='2'>2</option>
					</select>
				</div>
				
				<div id='hiddenDiv2' style='position:fixed;top:350px;left:28px;visibility:hidden;'>
					<label for='cacima18'>Quantidade de ingressos para Convidado (Acima de 18 anos): </label>
					<select id='cacima18' name='cacima18'>
						<option value='0'>0</option><option value='1'>1</option>
					</select>
				</div>
				
				<div id='hiddenDiv3'>
				<?$cacima18 = 0;?>
				</div>
		
 	   </div>
    </div>
	<br><br><br>
<br>

    <input type="submit" value="Enviar" /> <br><br>
	
</form>

<link href="http://fonts.googleapis.com/css?family=Open+Sans" id="google-font-selector" rel="stylesheet" type="text/css">


<?php	
} else
?>


<?php
			 
if ($acao == 'finalizar'){

$data = date_create();
$hora = date_timestamp_get($data);

$siape = $_SESSION['siapeusuario'];
$filiado = $_POST['filiado'];
$c0a14 = $_POST['c0a14'];
$cacima18 = $_POST['cacima18'];
$cconvidado = $_POST['cconvidado'];
$estacionamento = $_POST['estacionamento'];
$c15a17 = $_POST['c15a17'];

$numconvites= $filiado + $cacima18 + $c0a14 + $c15a17;
$origem = '2';

$re = mysql_query("select count(*) as total from convites where siape = '$siape'");
$total = mysql_result($re, 0, "total");

if ($total == 0) 
{	


	
	if ($numconvites == 0) {
	echo "Erro: A quantidade total de convites deve ser maior que 1.";
	break;
}


?>


       
    <h3 font-size="16"> <b>Convites reservados:</b> <br><br>
<?php	
	
   
 echo "<br><br> *Convite de Filiado: ". $filiado. " - Gratuito e intransferível <br> ";
 echo "*Convite de Convidado Infantil (0 a 14 anos): ". $c0a14. " - Gratuito <br>";   
 echo "*Convite de Convidado (15 a 17 anos): ". $c15a17." - R$ ". ($c15a17*35) ;
 echo "<br> *Convite de Convidado (Acima de 18 anos): ". $cacima18." - R$ ". ($cacima18*70) ;	 
 echo "<br> *Convite de Convidado Especial: ", $cconvidado;	
 echo "<br> *Convite de estacionamento: ", $estacionamento; 
	 ?></h3> 
	<?php	 

mysql_query("INSERT INTO convites (siape,origem,hora,filiado,c0a14,c15a17,cacima18,cconvidado,estacionamento) VALUES ('$siape','$origem','$hora','$filiado','$c0a14','$c15a17','$cacima18','$cconvidado','$estacionamento' )") or print(mysql_error());
			  echo '<h2">Convites cadastrados com sucesso!<br><br><br /> Você deverá retirar seu convite em seu local de distribuição. Verifique seu local <a href="#" target="_blank"> aqui. </a> </h2><br /><br />
          
			        ';
   }
  else {
	echo '<div class="error-box round">Convites já registrados.</div><br /><br />';
	break;
}    
}    
                 
?>

</div>
</center>
<div style="clear:both;">

Share this post


Link to post
Share on other sites

Pode ser idiotice minha, mais olha essa parte:

 echo "<br> *Convite de Convidado Especial: ", $cconvidado;	
 echo "<br> *Convite de estacionamento: ", $estacionamento; 

Está , em vez de .

 

O erro pode ser que existem 3 selects com o mesmo NOME e ID

<select id='cacima18' name='cacima18'>

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
Sign in to follow this  

  • Similar Content

    • By danteblatt
      Olá Srs,
      Não tenho muito conhecimento em PHP e estou com um formulário onde o usuário tem alguns campos para preencher e gravar no banco de dados SQL, sendo que um campo deste form será dinâmico onde o usuário poderá adicionar quantos campos forem necessários a partir de um botão "+".
      Nome do campo dinâmico: chavenf
      Segue abaixo o código do formulário:
      <form method="POST" action="../includes/mf-processa.php"> <div class="form-group"> <div class="form-row"> <div class="form-group col-md-4"> <input type="hidden" name="usuario[]" value="<?php echo $_SESSION['usuarioNome']; ?>" /> <select class="form-control" id="tipo" name="tipo[]"> <option selected>Tipo</option> <option>1</option> <option>2</option> </select> </div> <div class="form-group col-md-4"> <select class="form-control" id="prioridade" name="prioridade[]"> <option selected>Prioridade</option> <option>Alta</option> <option>Padrão</option> </select> </div> <div class="form-group col-md-4"> <input class="form-control" type="text" name="fornecedor[]" placeholder="Fornecedor" id="fornecedor"> </div> </div> <div style="display:none;" class="form-row" id="chavecte"> <div class="form-group col-md-12"> <label>Chave </label> <input class="form-control" type="text" name="chavecte[]"> </div> </div> <div class="form-row" id="row-nota"> <div class="form-group col-md-12"> <label>Chave da NF </label> <input class="form-control" type="text" name="chavenf[]" id="chavenf"> </div> </div> <div style="display:none;" class="form-row" id="add-field-nf"> <div class="form-group col-md-2"> <button type="button" class="btn btn-primary" id="add"> + </button> </div> </div> <div class="form-row"> <div class="form-group col-md-2"> <input type="submit" class="btn btn-primary" value="Cadastrar"> </div> </div> </div> </form> <script> $( "#add" ).click(function() { $( "#row-nota" ).append('<div class="form-group col-md-12"><input class="form-control" type="text" name="chavenf[]" id="chavenf"></div>'); }); </script> Abaixo o arquivo que conecta e insere no BD, "mf-processa.php"
      <?php session_start(); include_once("conexao.php"); $prioridade = filter_input(INPUT_POST, 'prioridade', FILTER_SANITIZE_STRING); $usuarioentrada = filter_input(INPUT_POST, 'usuario', FILTER_SANITIZE_STRING); $tipofrete = filter_input(INPUT_POST, 'tipofrete', FILTER_SANITIZE_STRING); $fornecedor = filter_input(INPUT_POST, 'fornecedor', FILTER_SANITIZE_STRING); $chavenf = preg_replace("/\s+/", "", filter_input(INPUT_POST, 'chavenf', FILTER_SANITIZE_STRING)); $chavecte = preg_replace("/\s+/", "", filter_input(INPUT_POST, 'chavecte', FILTER_SANITIZE_STRING)); $nNF = substr($chavenf, 25, 9); $timenow = date('d-m-Y'); $timenow .= ' '.date('H:i:s'); $qtnotas = count($chavenf)-1; for ($f = 0; $f <= $qtnotas; $f++) { $sql = "INSERT INTO base (data, usuarioentrada, prioridade, tipofrete, nf, fornecedor, chavenf, chavecte, acao, dataretorno, usuariofiscal) VALUES ( '.$timenow[$f].', '.$usuarioentrada[$f].', '.$prioridade[$f].', '.$tipofrete[$f].', '.$nNF[$f].', '.$fornecedor[$f].', '.$chavenf[$f].', '.$chavecte[$f].', '', '', '' )" or die ("<center>Erro: " . mysqli_error() . "</center>"); $insert = mysqli_query($conn, $sql); if(mysqli_insert_id($conn)){ $_SESSION['msgrec'] = "<p style='color:green;'>Nota cadastrada com sucesso!</p>"; header("Location: ../recebimento/recebimento.php"); }else{ $_SESSION['msgrec'] = "<p style='color:red;'>Nota não cadastrada com sucesso!</p>"; header("Location: ../recebimento/recebimento.php"); }  
       
      Veja o erro retornado na página.. Já tentei alterar o código e mesmo assim não consegui efetuar a inserção dos dados no BD.
       
      ( ! ) Warning: count(): Parameter must be an array or an object that implements Countable in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 31 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0  
      ( ! ) Notice: Uninitialized string offset: 0 in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 41 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0  
      ( ! ) Notice: Uninitialized string offset: 0 in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 42 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0
    • By lordstarlight
      Olá, 
       
      Como posso bloquear todos ips, menos o meu para acesso ao meu site?
      preciso fazer isto para poder fazer manutenção.
       
      obrigado!
    • By lordstarlight
      Olá pessoal,
       
      Tenho uma base de dados onde há um campo decimal que guarda um valor tipo (10.20).
      Quanto tento retornar o valor multiplicado por quantidade (10.2 * 2) retorna apenas 20,00
       
      $subTotal = $qtdeItem * $precoProduto;
      echo  'R$ '.number_format($subTotal,2,",",".");?><br>
       
      Como faço para retornar 20,40 ?
    • By groudon900
      Estou cursando aula pra aprender php e eu estava montando uma pagina de login, está tudo certo, mas não consegue conectar de jeito nenhum vou mandar o código pra vocês darem uma olhada
      banco de dados "aula"
      tabela "usuarios"
       
      contem, usuarios, senha, email e ID
       
       
      <?php require_once"config.php" ?> <?php if ( isset($_POST["usuario"])) { $usuario = $_POST["usuario"]; $senha = $_POST["senha"]; $login = "SELECT * "; $login .= "FROM usuarios "; $login .= "WHERE usuario = '{$usuario}' and senha = '{$senha}' "; $acesso = mysqli_query($conecta, $login); if ( !$acesso) { die("Falha na consulta ao banco!"); } $informacao = mysqli_fetch_assoc($acesso); if ( empty($infomacao)) { $mensagem = "login sem sucesso"; } else { header("location:listagem.php"); } } ?>  
    • By Emilio Saymon
      tenho um site que precisa que assim que eu aperte um botão ele verifiquei se a variavel sala for sala 1 ele abre no modal da sala1 se não abre no modal da sala2. Dei uma pesquisada e vi que da pra fazer com a função onclik(), mas não tenho noção como fazer. Aqui vai o código.
      botão <td><a href="#" class="btn btn-primary" data-toggle="modal" data-target="#modalLoginForm">XXX</a></td> <!-- sala 1 --> <div class="modal-body mx-3"> <div class="md-form mb-4"> <form method="POST" action="valida.php"> <h6>Sala 1</h6> <input type="password" class="form-control validate" name="senha"> </div> </div> <button type="submit" class="btn btn-primary" name="enviar">Entrar</button> </form> </div> </div> </div> </div> </div> <!-- sala 2 --> <div class="modal fade" id="modalLoginForm2" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header text-center"> <h4 class="modal-title w-100 font-weight-bold">Senha</h4> <button type="btn-primary" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body mx-3"> <div class="md-form mb-4"> <form method="POST" action="valida.php"> <p>Sala 2</p> <input type="password" class="form-control validate" name="senha2"> </div> </div> <div class="modal-footer d-flex justify-content-center"> <button type="submit" class="btn btn-primary" name="enviar1">Entrar</button> </form> </div> </div> </div> </div>  
×

Important Information

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