Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/10/2012, 09:51
portela85
 
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!