Foros del Web » Programando para Internet » PHP »

Como hacer que un select Recuerde seleccion

Estas en el tema de Como hacer que un select Recuerde seleccion en el foro de PHP en Foros del Web. Hola, soy nuevo en php y estuve modificando un carrito que encontre ahora intente colocarle un filtro y tengo 2 inconvenientes el primero es que ...
  #1 (permalink)  
Antiguo 17/07/2012, 12:02
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 11 años, 9 meses
Puntos: 0
Como hacer que un select Recuerde seleccion

Hola, soy nuevo en php y estuve modificando un carrito que encontre ahora intente colocarle un filtro y tengo 2 inconvenientes el primero es que al seleccionar un campo desde el select al cargar la pagina los campos seleccionados son los correctos pero en el control no me aparece lo que habia elegido. Y el segundo es como pasar ese valor a traves de varias paginas y que recuerde en que seleccion estoy ahora. Saludos cordiales

<?php
ob_start("ob_gzhandler");


session_start();

mysql_connect("","","");
mysql_select_db("restaurante");

$cxn = mysqli_connect("","","","restaurante")
or die ("couldn't connect to server");
$query = "SELECT DISTINCT id_categoria,nombre_categoria FROM categoria ORDER BY nombre_categoria";
$result = mysqli_query($cxn,$query)
or die ("Couldn't execute query.");


if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];else $carro=false;
$_SESSION['valor']= $_POST['cat'];
echo $cat;
echo $valor;


if ($cat=='') {
$qry = mysql_query("select * from plato where 1 order by id_categoria");
} else {
$qry = mysql_query("select * from plato where id_categoria=$cat");

}

?>
<html>
<head>
<title>CAT&Aacute;LOGO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.catalogo {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #333333;
}
-->
</style>
</head>
<body>
<table width="640" align="center" cellpadding="0" cellspacing="0" style="border: 1px solid #000000;">
<tr valign="middle" bordercolor="#FFFFFF" bgcolor="#DFDFDF" class="catalogo">
<td height="24">Carta</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="right">&nbsp;</td>
</tr>
<tr valign="middle" bordercolor="#FFFFFF" bgcolor="#DFDFDF" class="catalogo">
<td height="24" valign="middle">Seleccione una categoria</td>
<td><form name="form1" method="post" >
<label for="escoge"></label>
<select id='cat' name='cat' onChange="this.form.submit();" style='margin-top: 3em'>;
<?php
while($row = mysqli_fetch_assoc($result))
{
extract($row);

echo "<option value='$id_categoria' />$nombre_categoria</option>";

} ?>
</select>
<input type='submit' style='margin-left: 3em'
value='Sel. Categoria' />
</form></td>
<td>&nbsp;</td>
<td align="right">&nbsp;</td>
</tr>
<tr valign="middle" bordercolor="#FFFFFF" bgcolor="#DFDFDF" class="catalogo">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="right">&nbsp;</td>
</tr>
<tr valign="middle" bordercolor="#FFFFFF" bgcolor="#DFDFDF" class="catalogo">
<td width="170"><strong>Producto</strong></td>
<td width="170"><strong>Descripcion</strong></td>
<td width="77"><strong>Precio</strong></td>
<td width="25" align="right"><a href="vercarrito.php?<?php echo SID ?>" title="Ver el contenido del carrito"><img src="vercarrito.gif" width="25" height="21" border="0"></a></td>
</tr>

<?php

while($row=mysql_fetch_assoc($qry)){
?>
<tr valign="middle" class="catalogo">
<td><?php echo $row['nombre_plato'] ?></td>
<td><?php echo $row['descripcion_plato'] ?></td>
<td> $ <?php echo $row['costo_plato'] ?></td>
<td align="center"><?php
if(!$carro || !isset($carro[md5($row['id_plato'])]['identificador']) || $carro[md5($row['id_plato'])]['identificador']!=md5($row['id_plato'])){


?><a href="agregacar.php?<?php echo SID ?>&id=<?php echo $row['id_plato']; ?>"><img src="productonoagregado.gif" border="0" title="Agregar al Carrito"></a><?php }
else

{?><a href="borracar.php?<?php echo SID ?>&id=<?php echo $row['id_plato']; ?>"><img src="productoagregado.gif" border="0" title="Quitar del Carrito"></a><?php } ?></td>
</tr><?php } ?>

</table>
</body>
</html>
<?php
ob_end_flush();
?>
  #2 (permalink)  
Antiguo 17/07/2012, 12:09
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Como hacer que un select Recuerde seleccion

necesitas recibir el parametro cat en la misma pagina y este parametro compararlo con los valor que del query que va generando tu select y en caso de ser igual al que cachaste marcarlo como selected , para mantener viva la selección podrias usar variables de session

http://mx2.php.net/manual/es/session.examples.basic.php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #3 (permalink)  
Antiguo 17/07/2012, 12:10
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 10 meses
Puntos: 63
Respuesta: Como hacer que un select Recuerde seleccion

La mejor opción es como dijo mogurbon, usar variables de sesión...
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #4 (permalink)  
Antiguo 17/07/2012, 15:34
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Como hacer que un select Recuerde seleccion

Gracias por contestar tan rapidamente. Si ven en esta linea estoy definiendo una variable de sesion
$_SESSION['valor']= $_POST['cat'];
para almacenar el valor entregado por el select
pero al tratar de ponerlo como option selected queda siempre un mismo valor.
en la linea
echo $cat;
echo $valor;
imprimo ambos valores para verificar y si aparece el valor correcto. Que otra manera puedo usar o quiza alguna parte de la sintaxis de select q no estoy usando.
Saludos cordiales
  #5 (permalink)  
Antiguo 18/07/2012, 03:23
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: Como hacer que un select Recuerde seleccion

en ninguna parte de tu código se le asigna valor a la variable $cat.
$cat=$_POST['cat']; ..o $cat=$_SESSION['cat'];


Saludos.

Etiquetas: html, mysql, seleccion, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:39.