Foros del Web » Programando para Internet » PHP »

hacer un filtro con un select

Estas en el tema de hacer un filtro con un select en el foro de PHP en Foros del Web. hola como puedo hacer un filtro con un select. como el ejemplo de las imagenes. tengo este código: Código PHP: <?php include( "conex.phtml" ); $link ...
  #1 (permalink)  
Antiguo 02/11/2009, 16:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 587
Antigüedad: 15 años, 8 meses
Puntos: 6
hacer un filtro con un select

hola como puedo hacer un filtro con un select. como el ejemplo de las imagenes.

tengo este código:

Código PHP:
<?php

include("conex.phtml");
$link=Conectarse();

$result=mysql_query("select nombre, edad from personas",$link);

echo 
'<form name="formulario" >';

echo 
'
<select name="edad">
<option value="">Mostrar Todos</option>
<option value="">Edad 10 a 20</option>
<option value="">Edad 21 a 30</option>
</select>
 
</form>'
;

?>
alguna idea.





  #2 (permalink)  
Antiguo 02/11/2009, 16:43
 
Fecha de Ingreso: junio-2009
Mensajes: 50
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: hacer un filtro con un select

Lo que puedes hacer es poner en el value de cada option el filtro

por ejemplo Edad entre 21 y 22 pues : value="where edad between 21 and 22"
__________________
Pasa un buen rato y con humor en:
http://www.putinclub.com
  #3 (permalink)  
Antiguo 02/11/2009, 17:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 587
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: hacer un filtro con un select

muchas gracias, es excelente idea cargas los datos en la misma pagina con los parametros datos del select.

como puedo enviar un valor (value) del select a la misma pagina de php usando onchange del select, no me funciona.

me muestra el valor en un alert pero no lo envia a la variable de php, que tengo que cambiar ? porfa

Código PHP:
<?php
//onchange.php

echo $mivalor;

echo 
"
<form name='formulario' action='onchange.php?mivalor'>
    <select name='valores' onchange='alert(this.value)'>
    <option value='1'>Mostrar Todos</option>
    <option value='2'>Vale 10</option>
    <option value='3'>Vale 20</option>
    </select> 
</form>
"
;
?>
eh probado con onchange='$mivalor' y nada
  #4 (permalink)  
Antiguo 02/11/2009, 18:03
 
Fecha de Ingreso: abril-2006
Ubicación: Bogotá
Mensajes: 251
Antigüedad: 18 años
Puntos: 14
Respuesta: hacer un filtro con un select

Hola!

Puedes intentar lo siguiente:

prueba.php
Código:
<?php
    echo $_GET['valores'];
?>
<form name="formulario" method="GET" action="prueba.php">
    <select name="valores" onchange="this.form.submit();">
    <option value="1">Mostrar Todos</option>
    <option value="2">Vale 10</option>
    <option value="3">Vale 20</option>
    </select> 
</form>
Lo que hace es basicamente cuando detecta un cambio en el select hacer un submit al formulario, y como te das cuenta el formulario tiene como action ir a prueba.php que es la misma pagina, lo envia usando el método GET.

Lo que te faltaría sería solo ejecutar la sentencia SQL para que te muestre solo los datos que tengan el valor que te llega por GET.

Espero te sirva, saludos!
  #5 (permalink)  
Antiguo 02/11/2009, 18:55
 
Fecha de Ingreso: agosto-2008
Mensajes: 587
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: hacer un filtro con un select

Hola grax, el código funciona perfecto, excepto por unos detalles.

1. Cuando selecciono Ver Todos, no hace nada lo cual deberia de mostrar todos los registro parece que no carga el onchange, pero si funciona 10 a 20 y 21 a 30



2. Lo otro como lo separo por tablas, cuando lo muestro todos los registros, ordenado por tablas 10 a 20 y 21 a 30, dos tablas.

Código PHP:
<?php
include("conex.phtml");
$link=Conectarse();

echo 
"
<form action='select4.php' method='post'>
    <select name='operacion' onchange='this.form.submit();'>    
    <option value=''>Ver Todos</option>    
    <option value='where edad between 10 and 20'>10 a 20</option>
    <option value='where edad between 21 and 30'>21 a 30</option>    
    </select>
</form>
"
;

$valor $_REQUEST['operacion'];
//echo $valor;


$result=mysql_query("select * from personas $valor",$link);

echo 
"<table border=1>";

while(
$row mysql_fetch_array($result)) { 
$id $row["id"];
$nombre $row["nombre"];
$edad $row["edad"];


echo 
"
<tr>
    <td>$id </td>
    <td>$nombre </td>
    <td>$edad </td>
</tr>
"
;

}
echo 
"<table>"

?>
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 21:54.