Foros del Web » Programando para Internet » PHP »

Recoger el resultado de un ComboBox multiple

Estas en el tema de Recoger el resultado de un ComboBox multiple en el foro de PHP en Foros del Web. Tengo un combo box múltiple: Código: <select name="cobCodCarrera" size="4" multiple> Si hago varias seleciones precionando la tecla Control, como puedo recoger todos los values? lo ...
  #1 (permalink)  
Antiguo 22/06/2004, 09:14
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Pregunta Recoger el resultado de un ComboBox multiple

Tengo un combo box múltiple:
Código:
<select name="cobCodCarrera" size="4" multiple>
Si hago varias seleciones precionando la tecla Control, como puedo recoger todos los values?
lo que pasa es que me devuelve con $_Post["cobCodCarrera"] el último que haya seleccionado.
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--

Última edición por RsOfT; 22/06/2004 a las 09:31
  #2 (permalink)  
Antiguo 22/06/2004, 09:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Un select multiple para PHP es un array .. así que tendras que recibirlo como tal:

Código PHP:
if (is_array($_POST['cobCodCarrera'])){
   foreach(
$_POST['cobCodCarrera'] as $valor){
       echo 
$valor;
   }
} else {
echo 
"no se seleccinó ninguno ..";

Bajo tu variable ... sólo veras los que selecciones. Si no hay ninguno seleccionado esa variable no será de tipo array (creo? .. pruebalo).

Como array que es .. hay algunos casos que podrías usar funciones como implode() para "concatenar" esos elementos seleccionados (del array que obtienes) para hacer cosas como:

Código PHP:
$sql="UPDATE tabla SET campo='valor' WHERE otro_campo IN (".implode(',',$_POST['select_multiple']).")"
Un saludo,
  #3 (permalink)  
Antiguo 22/06/2004, 09:58
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Me devuelve el mensaje "no se seleccinó ninguno ..", al parecer el select múltiple no se convierte en arreglo, que me dices?

probé poniendo:
echo $_POST["cobCodCarrera"][01];
y me devuelve la primera letra del values del último que seleccioné en el "select múltiple".
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--

Última edición por RsOfT; 22/06/2004 a las 10:51
  #4 (permalink)  
Antiguo 22/06/2004, 11:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Ops! .. se me pasó:

El "name" tendría que ser con [] ...

<select name="cobCodCarrera[]" size="4" multiple>

Un saludo,
  #5 (permalink)  
Antiguo 22/06/2004, 12:27
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Ahora si

Muchas gracias
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #6 (permalink)  
Antiguo 22/06/2004, 17:26
 
Fecha de Ingreso: marzo-2004
Ubicación: Bariloche ARGENTINA
Mensajes: 36
Antigüedad: 20 años, 2 meses
Puntos: 1
hola loco...
entrá en: http://www.ashleyit.com/rs/jsrs/select/php/select.php
y ahí tenes un combobox muy copado en php y mysql para bajarte
  #7 (permalink)  
Antiguo 23/06/2004, 06:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
mm gonzita .. (aclaración).

El "combobox" que mencionas usa técnicas de "remote scripting" y se usa para "combinar" N combox entre sí dependiendo las opciones del "padre" así se mostraran las del "hijo" (y basado en una consulta SQL a una BD).

El caso concreto pese que dice "combox multiple" no se refiere a "anidados" (o "dependientes") sino a que es "múltiple" .. (propiedad de HTML: combox que se puede seleccionar N elementos de los que muestre a la vez).

Un saludo,
  #8 (permalink)  
Antiguo 23/02/2006, 22:12
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Funciona bien, pero PHP recoge los NOMBRES y se supone que deberia recoger los values.. ya que asi es mas facil trabajar...

Como se hace eso???

Saludos.
  #9 (permalink)  
Antiguo 24/02/2006, 10:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por richardinj
Funciona bien, pero PHP recoge los NOMBRES y se supone que deberia recoger los values.. ya que asi es mas facil trabajar...

Como se hace eso???

Saludos.
De que "nombres" hablas?

Tu como has definido tus "Option" de ese "<select>"? .. usastes value?

Un saludo,
  #10 (permalink)  
Antiguo 24/02/2006, 20:44
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
si tengo esto:

<select value="12">HOLA</select>

el resultado que recoge es HOLA, cuando deberia ser 12
  #11 (permalink)  
Antiguo 24/02/2006, 22:11
 
Fecha de Ingreso: enero-2006
Ubicación: La Paz - Bolivia
Mensajes: 48
Antigüedad: 18 años, 3 meses
Puntos: 0
Muy raro .. por que no pones todo tu SELECT


Saludos
  #12 (permalink)  
Antiguo 27/02/2006, 05:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por richardinj
si tengo esto:

<select value="12">HOLA</select>

el resultado que recoge es HOLA, cuando deberia ser 12
Creo que más bien te refieres a:

<select name="cobCodCarrera[]" size="4" multiple>
<option value="12">HOLA</option>
etc
</select>

que problema tienes? .. eso debe funcionar tal cual se expone .. el "value" (o "values" seleccionados son los que tendras en el "name" de ese select en forma de array cara a PHP).

Un saludo,
  #13 (permalink)  
Antiguo 27/02/2006, 08:06
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
mmm... a mi me bota el texto....
  #14 (permalink)  
Antiguo 27/02/2006, 08:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Veamos que estructura tienen los datos enviados:

Código PHP:
<? 
echo "<pre>"
print_r($_POST); 
echo 
"</pre>";
Un saludo,
  #15 (permalink)  
Antiguo 03/03/2006, 11:11
 
Fecha de Ingreso: marzo-2006
Mensajes: 2
Antigüedad: 18 años, 2 meses
Puntos: 0
Hola a todos este post es muy interesante, pero yo tengo un problema diferente. Necesito generar combos dependientes de un padre, igual al mencionado por gonzita pero de facil comprencion,puesto que soy un usuario inicial de php este metodo me es muy dificil de comprender.
Por favor ayudenme....

Gracias.
  #16 (permalink)  
Antiguo 06/03/2006, 05:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por brunex_rm
Hola a todos este post es muy interesante, pero yo tengo un problema diferente. Necesito generar combos dependientes de un padre, igual al mencionado por gonzita pero de facil comprencion,puesto que soy un usuario inicial de php este metodo me es muy dificil de comprender.
Por favor ayudenme....

Gracias.
En las FAQ's de este foro tienes un ejemplo de fácil compresión .. pues está implementado (con sus pró's y contras) en PHP sólo (y lo mínimo de Javascript + por supuesto SQL).

http://www.forosdelweb.com/showthrea...999#post664999

Un saludo,
  #17 (permalink)  
Antiguo 20/03/2006, 15:53
 
Fecha de Ingreso: marzo-2006
Mensajes: 2
Antigüedad: 18 años, 2 meses
Puntos: 0
ok cluster vi en la FAQ que dijiste, me ayudo mucho a comprender esto de los combos anidados, la verdad que con el otro metodo que propuso gonzit me hice pelotas.

Gracias amigos
  #18 (permalink)  
Antiguo 28/03/2006, 00:13
 
Fecha de Ingreso: noviembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 1
Combox dinamico de 3 tablas

hola a todos, desde hace un tiempo estoy aprendiendo php y se nota que me falta mucho por que trate de hacer el combox de tres tablas se que el error esta en el If de formar hija.

quien me puede decir

Código PHP:

<? 
// datos de conexion a la BD. 
$servidor  ="localhost"// host 
$usuario   ="";  
$clave     =""
$basedatos =""// Indicar una Base de datos. 


   // Conexión a la BD 
   
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error()); 
   
mysql_select_db($basedatos$conexion) or die(mysql_error()); 

   
// Obtener el $id_padre del envio a si mismo del formulario .. 
   
$id_padre=$_POST['id_pais']; 
   
$id_hija=$_POST['id_provincia'];

   
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script). 
   
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n"

   
// Formar Selec "Padre". 
   
echo "<select name=\"id_pais\" onChange=\"this.form.submit()\">\n"
   echo 
"<option value=\"\"> Seleccione un Item </option>\n"

   
$SQLconsulta_padre="SELECT * FROM pais"
   
$consulta_padre mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error()); 

   While   (
$registro_padre=mysql_fetch_assoc($consulta_padre)){ 
      
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo. 
      // Se selecciona en consecuencia (selected) la opción elegida. 
      
if ($id_padre == $registro_padre['id_pais']){ 
         echo 
"<option value=\"".$registro_padre['id_pais']."\" selected>".$registro_padre['pais']."</option>\n"
      } else { 
         echo 
"<option value=\"".$registro_padre['id_pais']."\">".$registro_padre['pais']."</option>\n"
      } 
    } 
   echo 
"</select>\n\n"

   
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta. 

   // Formar Select "Hija" 
  
echo "<select name=\"id_provicia\" onChange=\"this.form.submit()\">\n"
   echo 
"<option value=\"\"> Seleccione un Item </option>\n";  

   
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo 
   // se muestra el mensaje de "seleccine un item" (del select padre). 
   
if (!empty($id_padre)){ 

              
$SQLconsulta_hija="SELECT * FROM provincia WHERE id_pais='$id_padre'"
       
$consulta_hija mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error()); 
       
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select .. 

          
While   ($registro_hija=mysql_fetch_assoc($consulta_hija)){ 

// se que este IF es el error quien me puede ayudar
          
          
if ($id_hija == $registro_hija['id_provincia']){          echo "<option value=\"".$registro_hija['id_provincia']."\" selected>".$registro_hija['provincia']."</option>\n"
      } else { 
         echo 
"<option value=\"".$registro_hija['id_provincia']."\">".$registro_hija['provincia']."</option>\n"
           } 
    } 
    }
   echo 
"</select>\n\n"

   
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta. 
            
            // Formar Select "Hijo" 
   
echo "<select name=\"id_localidad\" onChange=\"this.form.submit()\">\n"

   
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo 
   // se muestra el mensaje de "seleccine un item" (del select padre). 
   
if (!empty($id_hija)){ 

       
$SQLconsulta_hijo="SELECT * FROM localidad WHERE id_provincia='$id_hija'"
       
$consulta_hijo mysql_query($SQLconsulta_hijo,$conexion) or die(mysql_error()); 
       
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select .. 
       
if (mysql_num_rows($consulta_hijo) != 0){ 
          While   (
$registro_hijo=mysql_fetch_assoc($consulta_hijo)){ 
            echo 
"<option value=\"".$registro_hijo['id_localidad']."\">".$registro_hijo['localidad']."</option>\n";     
            
          } 
        } else { 
            echo 
"<option value=\"\"> No hay registros para este Item </option>"
        } 
    } else { 
        echo 
"<option value=\"\"> <-- Seleccione un Item  </option>"
    } 

    
mysql_free_result($consulta_hijo); // Liberar memoria usada por consulta. 
     
    
echo "</select>\n\n"

    echo 
"</form>\n"

?>
  #19 (permalink)  
Antiguo 28/03/2006, 00:14
 
Fecha de Ingreso: noviembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 1
Lo que tendria que hacer el codigo es lo siguiente:

tabla: pais
tabla: provincia
tabla: localidad

en ese orden seria la cadena de combox.
  #20 (permalink)  
Antiguo 28/03/2006, 06:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
jose2003

Este mensaje no trata como "anidar" o crear dependencias entre "combobox" .. por favor inicia un nuevo tema para no mezclar y sobre todo aclara que te basas en cierto código.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #21 (permalink)  
Antiguo 28/03/2006, 22:49
 
Fecha de Ingreso: noviembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 1
Mil disculpas Cluster, pero no me di cuenta igualmente ya descubri donde esta el error.
  #22 (permalink)  
Antiguo 19/10/2006, 12:49
 
Fecha de Ingreso: octubre-2006
Mensajes: 27
Antigüedad: 17 años, 6 meses
Puntos: 0
mE PODRIAS DECIR EN DONDE ESTABA TU ERROR

Cita:
Iniciado por jose2003 Ver Mensaje
Mil disculpas Cluster, pero no me di cuenta igualmente ya descubri donde esta el error.
hoLA JOSE2003 OCUPO DE TU AYUDA.
vI KE tenias el mismo error ke yo, la diferencia es ke tu ya lo encontraste, me base en el mismo codigo pero sigo sin encontrarlo.
te cuento ke tube problemas con el PHP_SELF. pero tal parece ke ya se soluciono. Espero tu respuesta.
PHP
MySQL

ayudame por favor. Me urge
saludos
te envio mi correo por si lo necesitas
[email protected]
  #23 (permalink)  
Antiguo 03/01/2007, 17:28
 
Fecha de Ingreso: septiembre-2006
Ubicación: Practicando....
Mensajes: 106
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Recoger el resultado de un ComboBox multiple

y si quiero ver todos los valores de los combos aunque no estesn selecionados como le hago??
__________________
Saludillos Gariel
  #24 (permalink)  
Antiguo 22/07/2008, 09:32
 
Fecha de Ingreso: julio-2008
Mensajes: 1
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Recoger el resultado de un ComboBox multiple

Hola buenas,
quisiera que alguien me ayudase, tengo un comboBox multiple del q obtengo un array con los diferentes resultados, , pero con cada uno de los resultados debo de editar un video diferente leyendo de la base de datos, sabrias como se separan los resultados del array para hacer un selec..
espero haberme explicado y q alguien me pueda echar un mano...gracias
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 04:17.