Foros del Web » Programando para Internet » PHP »

Select multiple + PHP

Estas en el tema de Select multiple + PHP en el foro de PHP en Foros del Web. Estimados: He estado investigando este tema en el foro y he solucionado parcialmente la cuestion, aunque diria que casi en un 90%. Les cuento que ...
  #1 (permalink)  
Antiguo 08/01/2009, 20:22
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Busqueda Select multiple + PHP

Estimados:
He estado investigando este tema en el foro y he solucionado parcialmente la cuestion, aunque diria que casi en un 90%.
Les cuento que problema tengo. Tengo 2 selects en donde hay que seleccionar de varias opciones captadas de una BD.
El primero:
Código PHP:
    <td height="51"><form name="a1" id="a1">
      
        <div align="left">
          <span class="Estilo6">1.          </span>
          <select name="pcia" onchange="this.form.submit()">
            <option value="">Seleccionar Provincia</option>
            <?php 

while ($row=mysql_fetch_array($result)){ 
  if (
$row['idpcia'] == $_GET['pcia'] or $row['idpcia'] == $idpcia){ 
     echo 
"<option value=\"".$row['idpcia']."\" selected>".$row['nombrep']."</option>"
  } else { 
     echo 
"<option value=\"".$row['idpcia']."\">".$row['nombrep']."</option>"
  } 
}  
?>
Luego, tomo la variable $idpcia (la cual creo como variable de Session tomandola del form) y con ella hago un filtro en otra tabla... de ese modo me filtra solo los registros que cumplen con la condicion seleccionada.
En el siguiente select hago lo mismo y tomo otra variable de Session para un uso posterior.
Debajo de ambos Selects aparecen 2 botones (Aceptar y Cancelar). El Aceptar me lleva a otra pagina para continuar con la variable tomada en el ultimo Select.
Todo esto funciona perfecto. La cuestion esta en que los Selects estan hechos para que quede la opcion seleccionada. En el que puse como ejemplo la opcion que aparece es "Seleccionar Provincia" pero cuando elijo Santa Fe, por ejemplo, este es el nuevo texto que queda alli. ¿Se entiende?
Para el primer Select funciona, pero cuando elijo la opcion en el segundo es como que se resetea y si elegi Azul, por ejemplo, vuelve a aparecer la palabra original que era "Seleccionar Color" y ademas sin la posibilidad de ver el listado de colores que se generaba de la tabla.
Ambos Selects estan hechos de igual forma, asi que no entiendo por que pasa eso a pesar de haberlo investigado y haber encontrado ejemplos similares.
Espero que alguien pueda ayudarme.
  #2 (permalink)  
Antiguo 08/01/2009, 21:53
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Select multiple + PHP

para hacer selects multiples debes utilizar ajax o xajax para que cuando selecciones el segundo combobox este no te recargue la pagina que es lo que hace php....
esto ya se a tocado muchas veces de seguro que si usas el buscador como ciudades comunas etc..... encuentras lo que buscas


saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 08/01/2009, 22:13
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Respuesta: Select multiple + PHP

Aquí hay un aporte de GatorV para hacer lo que buscas.

http://www.forosdelweb.com/f77/aport...e-ajax-563637/
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #4 (permalink)  
Antiguo 09/01/2009, 06:28
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Select multiple + PHP

Gracias por los aportes. Probare siguiendo el aporte de GatorV que indica lucasan.
Respecto del comentario de kaninox: he investigado mucho en el foro respecto de este tema y, efectivamente como decis y como aclaro al inicio de mi pregunta, hay infinidad de documentación respecto a este tema. Gracias a esa documentación es que he podido llegar hasta donde llegué partiendo desde 0 practicamente.
De todas maneras, mi pregunta iba orientada a ver si lo podia solucionar dentro del codigo PHP que estuve utilizando ya que me parece extraño que me funcione con el primer Select (a pesar de la recarga de pagina que sé que hace el PHP) y no me funcione con el segundo. También me decidí a introducir este nuevo tema dado que considero que la solución está muy cerca y, luego de haberla peleado y llegado hasta donde llegué, me parecía un buen momento para pedir una mano y no perder todo el trabajo que me costó (mas que nada por el tiempo que me llevó).
Voy a probar, de todas formas, con la solución de Ajax aunque no pierdo las esperanzas con el codigo en PHP... gracias.
  #5 (permalink)  
Antiguo 12/01/2009, 04:49
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Select multiple + PHP

Holas mira como ya sabes php necesita recargar la pagina para realizar una consulta, como bien sabes ahora la solucion es hacer con javascript que las consultas en php no recarguen la web, yo en su momento tambien pase por lo mismo y pues por ello te recomende ver sobre ajax o xajax te dejo el topic que toque cuando pase por el mismo problema en donde estan todas las soluciones php y ajax ;)

saludos...

http://php.novacreations.net/viewtopic.php?t=53
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #6 (permalink)  
Antiguo 12/01/2009, 07:05
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Select multiple + PHP

kaninox:
Estuve viendo el ejemplo que dejaste en esa ocasion y me parece perfectamente adaptable a lo que estoy buscando. Por lo que estuve viendo no creo que tenga problemas en ponerlo en funcionamiento. De todas maneras, si aparece algo, voy a estar hinchando de nuevo... jejeje.
Muchisimas gracias por tu ayuda.
Saludos.
  #7 (permalink)  
Antiguo 12/01/2009, 12:20
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Select multiple + PHP

kaninox:
Estoy tratando de poner en funcionamiento el combo de Ajax. Tengo un problema, el segundo Select (el que dice Seleccionar Comuna...) no se me llena con los valores de la tabla que selecciono segun la condicion del Select anterior.
Modifique bastante los codigos correspondientes al formulario (que esta en pagina1.php) y lo que esta en select_ajax.php, pero no toque nada de lo que esta en el head del primer archivo.
Te paso los codigos con mis modificaciones:

pagina1.php

Código PHP:
<?php  

/* Generador de Provincias */ 

function generaComunas() 

   include(
"conexion.php");
   
   
$pcias="SELECT * FROM jos_pcia"
   
$result=mysql_query($pcias); 

   
// Voy imprimiendo el primer select compuesto por los paises 
   
echo "<select class='combo' id='select_0' name='ciudades' onChange='cargaContenido()'>"
      
"<option value=''>Seleccionar una Provincia</option>"
while (
$row=mysql_fetch_array($result)){ 
     echo 
"<option value=\"".$row['idpcia']."\">".$row['nombrep']."</option>"
}  

?> 

<form name="aqui" method="POST" action="1.php"> 
<table border="1" width="400" style="border-style:none;"> 
  <tr> 
    <td id="fila_1" width="50%"><?php generaComunas(); ?></td> 
   <td id="fila_2" width="50%"> 
<select class="combo" disabled="disabled" id="select_1" name="comunas"> 
<option id="valor_defecto" value="0">Selecciona Comuna...</option> 
</select> 
   </td> 
  </tr> 
</table> 
<input type="submit" name="algo" value="Enviar"> 
</form>
Como veras modifique unas cuantas cosas, por ejemplo, quite las cajas de texto de Comunas y Ciudades. La pagina arranca directamente con el primer listado generado de la tabla jos_pcias y se genera sin problemas.
Este es el de select_ajax.php:

Código PHP:
<?php 

$valor
=$_GET["seleccionado"]; 

   
// Si el numero corresponde a un codigo de pais valido paso a procesar 
   
include("conexion.php");
   
// Genero la consulta trayendo todos los estados que correspondan al codigo de pais elegido 
   
$consulta="SELECT * FROM jos_ligas WHERE codpcia = '$valor' ORDER BY localidadl ASC"
   
$result2=mysql_query($consulta); 

   
// Comienzo a imprimir el select 
   
echo "<select class='combo' id='select_1' name='comunas'>"
   while(
$registro=mysql_fetch_row($consulta)) 
   { 
      
// Paso a HTML acentors y ñ para su correcta visualizacion 
      //$registro['localidadl']=htmlentities($registro['localidadl']); 
      // Imprimo las opciones del select 
      
echo "<option value=\"".$registro['idliga']."\">".$registro['localidadl']." - ".$registro['nombrel']."</option>\n"
   }          
   echo 
"</select>"

?>
Fijate que en este ultimo quite la comprobacion y algunas cositas.

Espero tu ayuda... gracias.
  #8 (permalink)  
Antiguo 12/01/2009, 18:38
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Select multiple + PHP

fijate bien como esta hecha la tabla de base de datos y como nombre los primary key estos influyen bastante en el comportamiento de la consulta de lo contrario no funcionara....

saludos..
__________________
Gokuh Salvo al mundo. PUNTO!!!!
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 02:59.