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.