Foros del Web » Programando para Internet » PHP »

Duda con datos de un MultiSelect

Estas en el tema de Duda con datos de un MultiSelect en el foro de PHP en Foros del Web. Buenos dias compañeros, mi inquietud es la siguiente: tengo un formulario de registro el cual contiene un MultiSelect creado dinamicamente con los datos de una ...
  #1 (permalink)  
Antiguo 14/05/2008, 07:47
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Duda con datos de un MultiSelect

Buenos dias compañeros, mi inquietud es la siguiente: tengo un formulario de registro el cual contiene un MultiSelect creado dinamicamente con los datos de una tabla(paises) de mi BD hasta hay todo bien, la estructura del mismo es esta

codigo_pais pais
1010 Argentina
1011 Perú
1012 Colombia

y asi sucesivamente con los demas paises de sudamerica, pero como ustedes bien saben al momento de añadir un nuevo registro se inserta es el código, y lo que deseo es que se inserte el nombre del pais, puesto que en mi tabla de registro ese campo que se llama habitad puede contener varios datos separados por comas, pues el usuario puede elegir mas de una opción, me gustaria que me dieran alguna idea al respecto de como hacerlo se muy bien que tendria que hacer una consulta al a la tabla paises para extraer el nombre de cada uno, habria que trarar el MultiSelect como un arreglo select name="habitad[]"? pero estoy crudo con esto
ya que como son varios datos que selecciona el usuario y que se deberían insertar en el campo de la tabla.

Agradesco cualquier sugerencia al respecto

Saludos.
  #2 (permalink)  
Antiguo 14/05/2008, 08:31
isra00
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Re: Duda con datos de un MultiSelect

Sencillo:

Código HTML:
<select name="pais">
 <option value="1">Colombia</option>
 <option value="2">México</option>
 <option value="3">Venezuela</option> 
</select> 
... donde 1, 2 y 3 son los campos clave de la tabla.

En este caso el Select no es múltiple, aunque eso da igual para el problema que planteas. El problema de los Selects múltiples es la recogida de datos, ya que el simple $_POST["pais"] devuelve el último elemento seleccionado. Para solucionarlo y obtener todos los ítems seleccionados, recorro con JavaScripts todas las opciones, y si están marcadas (.selected) entonces las agrego a un array, que, serializado, envío en un campo oculto al receptor PHP del formulario. Pruébalo.

Un abrazo,
Isra.
  #3 (permalink)  
Antiguo 14/05/2008, 08:44
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: Duda con datos de un MultiSelect

Muchas Gracias por la respuesta isra00 bueno ya lo plantee de esta forma
Código PHP:
for($i 0$i count($habitad); $i++)
{
    
$consulta "SELECT habitad FROM habitad WHERE id_habitad = '$habitad[$i]'";
    
$resultado mysql_query$consulta$link ) or die( mysql_error() );
    
$datos mysql_fetch_array($resultado);
                    
    echo 
$datos['habitad'].",";

Hay obtengo los nombres de los paises , pero seria en la variable $datos['habitad'], la duda es como tengo que insertar mas datos a parte de ese dato, como hacer para añadir ese datos que contiene los paises, ya que por fuera del for no me toma el valor y necesito insertar junto a el los demas datos del formulario, ya el campo habitad quedaria de esta forma con los paises Argentina,Colombia,Perú Etc..... y obviamente no se podria hacer el insert por dentro del for.


Saludos.
  #4 (permalink)  
Antiguo 14/05/2008, 08:57
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: Duda con datos de un MultiSelect

Bueno la duda en si sería como implementar este dato $datos['habitad'].","; dado que me da este resultado ejemplo Colombia,Argentina,Perú y debe insertarlo junto con otros datos mas que vienen del formulario en una tabla de mi BD, pero como digo sacarlo fuera del for para hacer un solo insert.



Saludos.
  #5 (permalink)  
Antiguo 14/05/2008, 09:08
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: Duda con datos de un MultiSelect

Pense hacer esto:

Código PHP:
 for($i 0$i count($habitad); $i++)
{
    
$array = array();
    
$consulta "SELECT habitad FROM habitad WHERE id_habitad = '$habitad[$i]'";
    
$resultado mysql_query$consulta$link ) or die( mysql_error() );
    
$datos mysql_fetch_array($resultado);
                    
    
//echo $datos['habitad'].",";
                    
}
                 
echo 
$array[] = $datos['habitad'].","
Pero como era de esperarse me toma solo el ultimo valor del array de la consulta

Alguna otra idea compañeros? porque no la hallo

Saludos.
  #6 (permalink)  
Antiguo 20/05/2008, 08:51
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: Duda con datos de un MultiSelect

Que tal compañeros mis disculpas por abrir el tema nuevamente pero quería compartir la solución al incoveniente con ustedes, y no había podido hacerlo hasta ahora, esto fue lo que hice:
Código PHP:
$array = array();
for(
$x 0$x count($habitad); $x++){
 
$consulta "SELECT habitad from habitad WHERE id_habitad = '$habitad[$x]'";
 
$resultado mysql_query($consulta$link) or die( mysql_error() );
 
$datos mysql_fetch_array($resultado);
 
$array[] = $datos['habitad'];}
                        
 
$cadena join(","$array); 
Y eso era todo por ultimo hago el insert a mi tabla con los demas datos de mi formulario.


Saludos.
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 12:13.