Foros del Web » Programando para Internet » PHP »

Ayuda para grabar lista

Estas en el tema de Ayuda para grabar lista en el foro de PHP en Foros del Web. Sres tengo estas dos listbox, la cual puedo si escojo una opcion de la lista 1 lo puedo agraegar a la lista 2 y de ...
  #1 (permalink)  
Antiguo 10/06/2004, 11:55
 
Fecha de Ingreso: marzo-2004
Mensajes: 77
Antigüedad: 20 años, 1 mes
Puntos: 0
Ayuda para grabar lista

Sres tengo estas dos listbox, la cual puedo si escojo una opcion de la lista 1 lo puedo agraegar a la lista 2 y de la lista 2 lo puedo quitar y vuelta a ponerlo a la lista 1...Ahora si viene la pregunta, como hago para grabar los datos que paso a la lista 2, solamente quiero grabar los datos de la lista 2...please Help me!

Código PHP:
<?php

$_cod_emp
='2';
require(
'../funciones/func_inicio.php');
// Establece 
$conexion mysql_pconnect(bd_cadena,bd_usuario,bd_password);
if (!
$conexion)
{
    echo 
"Error: No se pudo establecer conexión con la base de datos";
    exit;
}
$bd=mysql_select_db(bd_nombre,$conexion);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
function agregar() {
    // numero de elementos de la lista de items disponibles
    m1len = document.formulario.listadisponibles.length ;
    for ( i=1; i<m1len ; i++){
        if (document.formulario.listadisponibles.options[i].selected == true ) {
    // numero de elementos de la lista de items habilitados        
            m2len = document.formulario.listaseleccionados.length;
            document.formulario.listaseleccionados.options[m2len]= new Option(document.formulario.listadisponibles.options[i].text);
        }
    }
    for ( i = (m1len -1); i>0; i--){
        if (document.formulario.listadisponibles.options[i].selected == true ) {
            document.formulario.listadisponibles.options[i] = null;
        }
    }
}

function quitar() {
    // numero de elementos de la lista de items habilitados
    m2len = document.formulario.listaseleccionados.length ;
        for ( i=1; i<m2len ; i++){
            if (document.formulario.listaseleccionados.options[i].selected == true ) {
    // numero de elementos de la lista de items disponibles            
                m1len = document.formulario.listadisponibles.length;
                document.formulario.listadisponibles.options[m1len]= new Option(document.formulario.listaseleccionados.options[i].text);
            }
        }
        for ( i=(m2len-1); i>0; i--) {
            if (document.formulario.listaseleccionados.options[i].selected == true ) {
                document.formulario.listaseleccionados.options[i] = null;
            }
        }
}

</script>

</head>

<body>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><form action="" method="post" name="formulario" id="formulario">
      <table width="75%"  border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td><select name="listadisponibles" size="12" id="listadisponibles">
            <option value="0">&lt;- Cuentas por pagar -&gt;</option>
            <?php 
            $cadenasql
="SELECT num_cor, cod_doc, tot_cta FROM ctas_xpag WHERE cod_emp='$_cod_emp' ";
            
$cadenasql.="AND fla_can='0'";
            
$result=mysql_query($cadenasql,$conexion);    
            while (
$fila=mysql_fetch_array($result,MYSQL_NUM))
            {
                
$num_cor=$fila[0];
                
$cod_doc=$fila[1];
                
$tot_cta=$fila[2]; 
            echo 
'<option value="'.$num_cor.'">'.$cod_doc.'-'.$tot_cta.'</option>';        
            }
            
?>
          </select>
          <td><input type="button" name="Submit" value="Agregar uno &gt;" onClick="javascript:agregar()">
            <br>
            <input type="button" name="Submit2" value="  &lt; Quita uno  " onClick="javascript:quitar()">
          <td><select name="listaseleccionados" size="12" id="listaseleccionados">
            <option value="0">&lt;- Cuentas pagadas-&gt;</option>
          </select>
          </td>
        </tr>
        <tr align="center">
          <td colspan="3"><input type="submit" name="Submit3" value="Grabar">
            &nbsp;
            <input type="reset" name="Submit4" value="Cancelar"></td>
          </tr>
      </table>
    </form></td>
  </tr>
</table>

</body>
</html>
  #2 (permalink)  
Antiguo 10/06/2004, 18:36
 
Fecha de Ingreso: marzo-2004
Mensajes: 77
Antigüedad: 20 años, 1 mes
Puntos: 0
Haber por alli , un Guru, que pueda ayudarme..
  #3 (permalink)  
Antiguo 10/06/2004, 20:59
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
no entiendo, cual es el problema? si solo quieres grabar los de la lista dos, pues esa es la solución, solo graba los de la lista dos

Código PHP:
$lista2 $_POST['listaseleccionados'];
foreach(
$lista2 as $elemento)
mysql_query("INSERT INTO tabla VALUES('', '".$elemento."');"); 
claro que en el HTML tienes que cambiar el nombre del select a
Código:
<select name="listaseleccionados[]" size="1" multiple>
y con javascript, seleccionarlos todos antes de enviarlos... esto para que el select acepte mas de un valor seleccionado. No recuerdo si está bien el atributo "multiple", pero cre que asi es, pruebalo... un saludo
  #4 (permalink)  
Antiguo 11/06/2004, 02:51
 
Fecha de Ingreso: marzo-2004
Mensajes: 77
Antigüedad: 20 años, 1 mes
Puntos: 0
Hola Sism82, he probado lo que tu me dices, pero aparte hay unos combos dependientes en los cuales no tengo problemas, el problema esta que cuando escojo el combo y este hace un submit, lo que habia cargado en el listbox se regresa a cero, es decir como a un inicio, yo kiero k se mantenga al refrescar la pantalla...ojala y me puedan ayudas.

Saludos..
  #5 (permalink)  
Antiguo 11/06/2004, 07:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa esta FAQ donde veras un ejemplo como trabajar con listas dependientes y "pre-definir" un valor por defecto en función de lo que enviastes (usando la propiedad "selected" de un <option>).

http://www.forosdelweb.com/showpost....&postcount=116

Un saludo,
  #6 (permalink)  
Antiguo 11/06/2004, 10:42
 
Fecha de Ingreso: marzo-2004
Mensajes: 77
Antigüedad: 20 años, 1 mes
Puntos: 0
Upss..quise decir que no tengo problemas con los combos, eso si lo tengo perfectamente definido, el problema es los <select> estan en forma de 'list', como dije en un principio y como muestra el codigo, necesito recuperar los datos de la segunda lista, que puden ser muchos, y grabar todos estos datos..ademas k no se pierda los valores cuando hago un submit..espero que me hayan comprendido...gracias

Saludos--
  #7 (permalink)  
Antiguo 11/06/2004, 13:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No sé como quieres capturar esos elementos de ese "<select>" (del segundo) .. pero a la rápida sería transformando tu select actual en uno multiple ... ahí seleccionas los N elementos que quieras y al usar tu "submit" de tu formulario .. en PHP recibiras un array con esos N elementos en el:

<select name="nose" multiple>
<option .....>
</select>

y en PHP recibiras un array:

Código PHP:
foreach ($_POST['nose'] as $valor){
   echo 
$valor.'<br>';

Un saludo,
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 13:35.