Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2008, 08:51
Avatar de rockasvivas
rockasvivas
 
Fecha de Ingreso: julio-2008
Mensajes: 16
Antigüedad: 16 años, 6 meses
Puntos: 0
select selected multiple

Buenas tardes, aki con un detalle que no he podido resolver. Pongo los valores de un campo de una tabla en un select multiple y necesito que los valores de otra tabla cuyos datos se llenaron previamente con la primera esten seleccionados, cuando se acceda al formulario para MODIFICACIÓN. Lo estoy haciendo de la siguiente manera, pero resulta que al seleccionar sólo un elemento y al darle al boton MODIFICAR, se seleccionan todos los que estan debajo de él. Primero consulto en la tabla a modificar el campo "servicios", y como el registro fue llenado de un select multiple anteriormente, estan separados por comas, por lo que utilizo un explode:
Código PHP:
$sql "select * from ordenes";
$res mysql_query($sql);
$row mysql_fetch_array($res);
$servicios explode(",",$row[servicios]); 
Luego con otra consulta lleno el select múltiple con la tabla en donde están todas las opciones para selecionar en caso de modificacion:
Código PHP:
echo 'Modifique el o los Tipos de Servicio:';

$reserv mysql_query("select descripc from tiposerv");
while (
$rowserv mysql_fetch_array($reserv)){
if (
in_array($rowserv[descripc],$servicios))
   
$seleccionado .= "selected";
    else
    
$seleccionado .= "";
                                 
   
$selectserv .= '<option '.$seleccionado.'>'.$rowserv[descripc].'</option>';
}
echo 
'<SELECT MULTIPLE NAME="serv[]">';
          echo 
$selectserv;
echo 
'</SELECT>'
Como te digo, el problema es que NO me deja seleccionados sólo los que están en el registro de la tabla a modificar, sino todas las opciones del select multiple hacia abajo, esto en caso de que seleccione el primer elemento, o del segundo (selecciona ese y todos los de abajo), o el tercero (selecciona ese y todos los de abajo), y asi... Por tu Valiosa Ayuda, Muchas Gracias!