Foros del Web » Programando para Internet » Javascript »

Guardar una lista multiple

Estas en el tema de Guardar una lista multiple en el foro de Javascript en Foros del Web. Hola tengo una duda si alguien me puede ayudar...... tengo una lista multiple cargada de mi base de datos esta: Código: <?php require_once('nucleo/clase.personalCU.php'); $objClasePersonal = ...
  #1 (permalink)  
Antiguo 25/09/2009, 11:42
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Guardar una lista multiple

Hola
tengo una duda si alguien me puede ayudar......
tengo una lista multiple cargada de mi base de datos
esta:
Código:
 
<?php
require_once('nucleo/clase.personalCU.php');
$objClasePersonal = new personalCU();
$fas_distribucion= array();
$fas_distribucion = $objClasePersonal->Listar();
?>
<html>
<body>
<select name="lstDistribucion" id="lstDistribucion" multiple="multiple">
  <option value="-1"> Elije una Opcion</option>
    <?php 
       if(count($fas_distribucion)>0){ 
        for($i=0; $i<count($fas_distribucion); $i++){
       ?>
        <option value="<?php echo $fas_distribucion[$i]["rut"] ?>">
        <?php echo $fas_distribucion[$i]["nombre_personal"] ?>        
  </option>
  <?php
         }
       }
   ?>
</select>
<input id="TotalDist" name="TotalDist" type="hidden" />
</body>
</html>
como se muestra en el codigo carga en la lista multiselect los valores que rescato de la base de datos..... y necesito que cada vez que seleccione uno se valla agregando a la caja de texto escondida "TotalDist" con una "|" para seprarlos ya que la funcion guardar la tengo lista para sacar el value de esa caja de texto.
Se que se puede con javascript hacer eso.... pero parece que he buscado mal por internet ya que no encuentro la forma todavia.....
agradeceria si alguien conoce la respues, mientras yo siguo buscando como hacerlo
un saludo

cualquier aporte es bien resibido
  #2 (permalink)  
Antiguo 25/09/2009, 11:57
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 7 meses
Puntos: 175
Respuesta: Guardar una lista multiple

Creo que para mostrar los resultados que tienes en la base de datos, a traves de un SELECT es mejor hacerlo asi:

Código PHP:
<select name="product">

               <option value="">-- Seleccione un Producto --</option>

                <?
                 
include("conn.php");
                
$sql="select id, producto from tabla order by id";
                
$result=mysql_query($sql,$connection) or die(mysql_error());
                while(
$row=mysql_fetch_array($result))
                {
                    
            
?>
                <option value="<? echo $row['id'?>">
                <? echo $row['producto']; ?> 
                </option>

                <? 
                  

                 
?>

              </select>
Lo que no entendi bien es lo segundo, y lo del separador... no se si interprete lo que necesitas..
  #3 (permalink)  
Antiguo 25/09/2009, 12:20
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Guardar una lista multiple

Código javascript:
Ver original
  1. <script type="text/javascript">
  2. var sels;
  3. function saveSels(el){
  4.     sels = [];
  5.     var opts = el.options, e = 0;
  6.     for (var i=0 ;i < opts.length; i++){
  7.         if(opts[i].selected){ sels[e] = opts[i].value; e++}
  8.     }
  9.     document.getElementById("TotalDist").value= sels.join("|");
  10. }
  11. </script>

Código HTML:
<select onClick="saveSels(this)" multiple="multiple"> 
Hagas lo que hagas, podrías ya no usar el campo hidden, por que ya tienes las opciones seleccionadas en la variable sels
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #4 (permalink)  
Antiguo 25/09/2009, 13:25
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Guardar una lista multiple

Cita:
Iniciado por loncho_rojas Ver Mensaje
Creo que para mostrar los resultados que tienes en la base de datos, a traves de un SELECT es mejor hacerlo asi:

Código PHP:
<select name="product">

               <option value="">-- Seleccione un Producto --</option>

                <?
                 
include("conn.php");
                
$sql="select id, producto from tabla order by id";
                
$result=mysql_query($sql,$connection) or die(mysql_error());
                while(
$row=mysql_fetch_array($result))
                {
                    
            
?>
                <option value="<? echo $row['id'?>">
                <? echo $row['producto']; ?> 
                </option>

                <? 
                  

                 
?>

              </select>
Lo que no entendi bien es lo segundo, y lo del separador... no se si interprete lo que necesitas..
gracias amigo, pero estoy con base de datos postgresql y es la unica forma abstracta que encontre de listar los datos ya que todas las consultas sql estan en la clase personalCU

pero gracias por tu respuesta
  #5 (permalink)  
Antiguo 25/09/2009, 13:31
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Guardar una lista multiple

Cita:
Iniciado por America|UNK Ver Mensaje
Código javascript:
Ver original
  1. <script type="text/javascript">
  2. var sels;
  3. function saveSels(el){
  4.     sels = [];
  5.     var opts = el.options, e = 0;
  6.     for (var i=0 ;i < opts.length; i++){
  7.         if(opts[i].selected){ sels[e] = opts[i].value; e++}
  8.     }
  9.     document.getElementById("TotalDist").value= sels.join("|");
  10. }
  11. </script>

Código HTML:
<select onClick="saveSels(this)" multiple="multiple"> 
Hagas lo que hagas, podrías ya no usar el campo hidden, por que ya tienes las opciones seleccionadas en la variable sels
muchas gracias ..... me sirve arto
una sola consulta..... es que el hidden que creo como TotalDist es donde voy a importar lo que se valla eligiendo de la lista
onda:
"TotalDist.Value" = Valor elegidos de "lstDistribucion" + "|" (para separar cada uno de los Values elegido)
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 07:32.