Foros del Web » Programando para Internet » PHP »

Problemas con select múltiple

Estas en el tema de Problemas con select múltiple en el foro de PHP en Foros del Web. Buenas tardes, tengo un problema a ver si me pueden ayudar. Tengo una función listaGrupos(), que me genera un select múltiple con un listado de ...
  #1 (permalink)  
Antiguo 01/10/2012, 09:51
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Problemas con select múltiple

Buenas tardes,

tengo un problema a ver si me pueden ayudar.

Tengo una función listaGrupos(), que me genera un select múltiple con un listado de grupos. Quiero poder seleccionar varios de esos items y pasarlos a una consulta de BD.

La función es la siguiente:
Código:
     public function listaGrupos(){
	$query = "SELECT grupo FROM grupos";
	$consulta = new Consulta($query);
	
	$group = "<select multiple name='".grupos."'>\n"; 
	while($fila=$consulta->obtener_fila()){
	    //concatenamos y le damos el value a la opcion
	    $group.= " <option value='".$fila['grupo']."'>".$fila['grupo']."</option>";
	}
	//concatenamos y cerramos el select
	$group .= "</select>\n";	
	return $group;
    
	if(!$consulta){ 
	    throw new Exception("Error al recuperar los Grupos");
	}
    }
He visto que para hacer una selección múltiple el name debería de contener [], pero me da error de sintaxis

"<select multiple name='".grupos[]."'>\n";

y esta es la consulta que quiero que se genere en base al número de items seleccionados:
Código:
$query = "SELECT trabajos.idtrabajo AS idtrabajo, trabajos.indi AS indi, trabajos.grupo AS grupo, clientes.cliente AS cliente, trabajos.ot AS ot, proyectos.proyecto AS proyecto, interlocutores.interlocutor AS interlocutor, trabajos.f_inicio AS f_inicio, trabajos.f_fin AS f_fin, trabajos.descripcion AS descripcion, trabajos.cantidad AS cantidad, trabajos.escalado AS escalado, trabajos.descripcionescalado AS descripcionescalado, trabajos.tiempo_real AS tiempo_real, trabajos.preciototal AS preciototal, trabajos.pago_actuacion AS pago_actuacion, trabajos.nocturna AS nocturna , trabajos.comentarios AS comentarios, status.statu AS statu, trabajos.descripcionstatus AS descripcionstatus, actividades.actividad AS actividad, tallas.talla AS talla, tallas.tiempo AS tiempo, tallas.precio AS precio, consultores.consultor AS consultor, trabajos.pagohoras AS pagohoras, trabajos.horas AS horas FROM (((interlocutores INNER JOIN ((clientes INNER JOIN trabajos ON clientes.Id_cliente = trabajos.cliente) INNER JOIN proyectos ON trabajos.proyecto = proyectos.Id_proyecto) ON interlocutores.Id_inerlocutor = trabajos.interlocutor) INNER JOIN consultores ON trabajos.consultores_Ident_consultor = consultores.Ident_consultor) INNER JOIN status ON trabajos.status_idstatus = status.idstatus) INNER JOIN ((actividades_tallas INNER JOIN actividades ON actividades_tallas.idactividad = actividades.Id_actividad) INNER JOIN tallas ON actividades_tallas.idtalla = tallas.id_talla) ON trabajos.idactiv_tall = actividades_tallas.idacttal WHERE (trabajos.f_inicio)>='$fechainicio' AND (trabajos.f_inicio)>='$fechafin'";

    $gruposs=$_POST["grupos"];
    echo $_POST["grupos"];
    
    for ($i=0;$i<count($gruposs);$i++){
        $query.= "AND grupo = '$gruposs[$i]';";
    }
¿cómo puedo solucionarlo?

muchas gracias por adelantado!
  #2 (permalink)  
Antiguo 01/10/2012, 11:51
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Problemas con select múltiple

Si el error de sintaxis lo tienes al momento de hacer el <select.... entonces, ¿Por que no nos pones también esa fracción de código para que podamos evaluar lo que esta fallando?

Igualmente no entiendo por qué haces uso de las dos comillas y separas grupos[] que no es una variable, seguramente ese es tu error, y por ultimo deberías agregarle el valor "multiple" al atributo multiple, todos los atributos html deben tener un valor asociado.
Código PHP:
Ver original
  1. "<select multiple name='".grupos[]."'>\n";

Deberías simplemente escribirlo asi
Código PHP:
Ver original
  1. echo '<select multiple="multiple" name="grupos[]">';
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Etiquetas: múltiple, select
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 05:59.