Array
(
)

Pegar valores de select e salvar em uma Session

PHP
Rumao
   - 25 nov 2013

Boa tarde galera estou com o seguinte problema:
Ao fazer um Select utilizando combobox, após escolher as três opções, não estou conseguindo pegar os valores selecionado e armazenar eles em uma Session para uso futuro.
Estou fazendo assim:
index.php
#Código

<?php
session_start();
session_destroy();
 include("conexao.php") ?>
<!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" />
<link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
<title>Base de Dados FIPE</title>
</head>

<body>
    <form action="categorias.php" method="post" enctype="application/x-www-form-urlencoded" id="form">
        <fieldset>
            <legend><img src="img/car.png" width="30" height="30" align="absmiddle" /> Automóvel</legend>
            <label for="marca">Marca: 
                <select name="marca" class="input-medium" id="marca">
                    <option name="" selected="selected">Selecione Montadora</option>
                    <?php
                    $query = mysql_query( "select * from montadoras" );
                    while( $montadoras = mysql_fetch_array( $query ) ): ?>
                        <option value="<?php echo $montadoras['codigo_mon'] ?>"><?php echo $montadoras['nome_mon'] ?></option>
                    <?php endwhile; ?>
                </select>
            </label>
            <label for="modelo">Modelo: 
            	<select name="modelo" class="input-medium" id="modelo">
                	<option value="0">Aguardando Marca...</option>
                </select>
            </label>  
            <label for="tipo">Ano: 
            	<select name="tipo" class="input-medium" id="tipo">
                	<option value="0">Aguardando Modelo...</option>
                </select>
            </label>                      
        </fieldset>
        <input type="submit" value="send" id="send" name="send" />
    </form>
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
	<script type="text/javascript">
    $(document).ready(function(){
		
		$("#marca").change(function(){
			marca = $(this).attr('value');
			$.ajax({
				type: "post",
				url: "get_modelos.php",
				data: "marca="+marca+"",
				async: false,
				cache: false,
				datatype: "text",
				beforeSend: function(){
					$("#modelo").html('<option value="" selected="selected">Aguarde...</option>');
					$("#tipo").html('<option value="" selected="selected">Aguardando Modelo...</option>');
				},
				success: function(response){ 
					x = response.split(",");
					modelo = new Array();
					for(i = 0; i < x.length; i++){
						modelo[i] = x[i].split("|");
					}
					if(modelo.length > 0){
						$("#modelo").html('').append('<option selected="selected">Selecione o Modelo...</option>');
						for(i = 0; i < modelo.length; i++) {
							$("#modelo").append('<option value='+modelo[i][1]+'>'+modelo[i][0]+'</option>');
						}	
					}
				},
				error: function(){
				
				}
			});
		});
		
		$("#modelo").change(function(){
			modelo = $(this).attr('value');
			$.ajax({
				type: "post",
				url: "get_ano_modelos.php",
				data: "modelo="+modelo+"",
				async: false,
				cache: false,
				datatype: "text",
				beforeSend: function(){
					$("#tipo").html('<option value="" selected="selected">Aguarde Modelo...</option>');
				},
				success: function(response){ 
					ano_modelo = response.split(",");
					if(ano_modelo.length > 0){
						$("#tipo").html('').append('<option selected="selected">Selecione o Ano...</option>');
						for(i = 0; i < ano_modelo.length; i++) {
							$("#tipo").append('<option value="'+ano_modelo[i]+'">'+ano_modelo[i]+'</option>');
						}	
					}
				},
				error: function(){
				
				}
			});
		});
    });
    </script>
</body>
</html>

get_modelos
#Código
<?php
	ob_start();
	include( "conexao.php" );
	
	$marca = protect( $_POST['marca'] );
	$query = mysql_query( "select * from modelos where codigomon_mod = $marca" );
	$modelos = array();
	
	while( $x = mysql_fetch_array( $query ) ) {
		$modelos[] = $x['nome_mod'] . "|" . $x['codigo_mod'] ;
	} 
	
	echo implode( ",", $modelos );
?>

get_ano_modelos
#Código
<?php
	ob_start();
	include( "conexao.php" );
	
	$modelo = protect( $_POST['modelo'] );
	$query = mysql_query( "select * from modelosxanos where codigomod_mxa = $modelo" );
	$modelos = array();
	
	while( $x = mysql_fetch_array( $query ) ) {
		$modelos[] = $x['nome_mxa'];
	} 
	
	echo strip_tags( implode( ",", $modelos ) );
?>

Na página que seria categorias.php é onde eu receberia estes dados, mas só consegui pegar o ID. Mas preciso do ID e do Nome.
Alguém poderia dar uma ajuda?
Desde já agradeço.

William (devwilliam)
   - 26 nov 2013

Colega esse ID e o Nome que você quer capturar seria de qual tabela?
- modelos
- modelosxanos

Poste o código que você já tem pronto desse categoria.php.

America Informatica
|
MVP
    26 nov 2013

Para questões de exemplo, estou pegando assim na página categorias.php

#Código

<?php 
session_start();
include("conexao.php") ?>
<!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" />
<link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
<title>Base de Dados FIPE Categorias</title>
</head>

<body>
    Código Carro = <?php echo $_POST['modelo']; ?><br />
    Ano Carro = <?php echo $_POST['tipo']; ?>
    
    <?php
	$_SESSION['veiculos']['modelo'] = $_POST['modelo'];
	$_SESSION['veiculos']['ano'] = $_POST['tipo'];
	
	echo '<br /><br />';
	echo 'Pegando pela Session:<br />';
	
	echo '<pre>';
	print_r($_SESSION);
	?>
</body>
</html>

Rumao
   - 26 nov 2013

Estou adaptando este código para o que preciso, baseado neste aqui:

http://projetos.lucaspeperaio.com.br/base-dados-fipe-sql/
http://projetos.lucaspeperaio.com.br/fipe/

Rumao
   - 03 dez 2013

Acredito que eu estava fazendo de forma errada, estou fazendo assim agora:
1º após filtrar os dados na página de categoria faço um select pegando pelo id que vem via POST
2º após o select gravo os valores que preciso em uma SESSION

Ficou assim:
#Código

//Pega valores passados via POST para consulta do Veículo
$anoModelo   = (int)$_POST['ano'];
$placaModelo = strip_tags(trim($_POST['placa']));

<?php 
			$sql = "SELECT * FROM modelosxanos a
					LEFT JOIN modelos b on b.codigo_mod = a.codigomod_mxa
					WHERE codigo_mxa = '$anoModelo'";
			$qry = mysql_query($sql)or die("Erro ao consultar!");
			$row = mysql_num_rows($qry);
			if($row == 1):
				while($reg = mysql_fetch_array($qry)):
					$nomeVeiculo = $reg['nome_mod'];
					$anoVeiculo  = $reg['nome_mxa'];
					
					//Armazena dados do veículo na Session
					$_SESSION['veiculo']['nome']  = utf8_encode($nomeVeiculo);
					$_SESSION['veiculo']['ano']   = $anoVeiculo;
					$_SESSION['veiculo']['placa'] = strtoupper($placaModelo);
					
				endwhile;
			endif;
			?>



Aos que tentaram ajudar muito obrigado.