Foros del Web » Programando para Internet » Javascript »

Creo una lista con dom y al hacer submit no me pasa las variables

Estas en el tema de Creo una lista con dom y al hacer submit no me pasa las variables en el foro de Javascript en Foros del Web. Tengo un codigo un dom que me genera una lista dinamica de la siguiente forma: Código PHP: if($_GET['varNombre'] == "opcl_almacen" || $_GET['varNombre'] == "opcl_almacen_d") { //recivo dos variables que me sirven para hacer un select y sacar los valores que van en la lista if($_GET['varNombre'] == "opcl_almacen") {     $_SESSION['orgCodigo'.$t] = $_GET['varValor']; }      ...
  #1 (permalink)  
Antiguo 15/11/2007, 02:28
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Creo una lista con dom y al hacer submit no me pasa las variables

Tengo un codigo un dom que me genera una lista dinamica de la siguiente forma:

Código PHP:
if($_GET['varNombre'] == "opcl_almacen" || $_GET['varNombre'] == "opcl_almacen_d")
{

//recivo dos variables que me sirven para hacer un select y sacar los valores que van en la lista
if($_GET['varNombre'] == "opcl_almacen")
{
    $_SESSION['orgCodigo'.$t] = $_GET['varValor'];
}
    
if($_GET['varNombre'] == "opcl_almacen_d")
{
    $_SESSION['destCodigo'.$t] = $_GET['varValor'];
}    
    
//la consulta para los datos
    
    $consulta_alm  ="SELECT A.movConcepto, A.movCodigo, A.movFecha, A.almCodigoDestino  FROM  ".$_SESSION['MOV_ALMACEN'.$t]." A ";
    $consulta_alm .="Where A.almCodigoOrigen = '".$_SESSION['orgCodigo'.$t]."' AND A.almCodigoDestino = '".$_SESSION['destCodigo'.$t]."' AND A.movTipo='T' ORDER BY A.movFecha";
    echo $consulta_alm;
        $resultado_alm = ejecutar($consulta_alm);
        
        ?>
        <script>
     
//borro la lista anterior para generarla con los datos nuevos       parent.gestapl.document.getElementById('divinventario').removeChild(parent.gestapl.document.getElementById('opcl_transferencia'));       
//genero la lista nueva
       var sel = parent.gestapl.document.getElementById('divinventario').appendChild(parent.gestapl.document.createElement("SELECT"));
       sel.setAttribute('id','opcl_transferencia');
       sel.setAttribute('name','opcl_transferencia');
       
                
                

     </script>
      <?php
        
    
while($alm mysql_fetch_array($resultado_alm))
                {
                
            
//genero cada uno de los elementos de la lista    
                    
?>
    <script>
        var o;
                o = document.createElement("OPTION");
                o.text  = '<?php echo " [ ".$alm["movCodigo"]." ] ".$alm["movConcepto"]." - ".obtener_fecha($alm["movFecha"]);?>';
                o.value = '<?php echo $alm["movCodigo"];?>';
                parent.gestapl.document.getElementById('opcl_transferencia').options.add (o);

    </script>
    <?php
                
                
}
    

}else{


}

?>
el problema viene cuando hago submit desde aqui

<form action="realizarlisttrans.php" id="fopcl_almacen" name="fopcl_almacen" method="post">

Seleccionar Fecha:


Desde
<input
name = "inifec"
type = "text"
size = "15"
class = "caja"
onfocus = "marcar_caja(this);"
onblur = "desmarcar_caja(this);
if(this.value != '')
{
regDato('opcl_inifec', this.value, 'fopcl_almacen', 'inifec');
}
else
{
this.value = 'INICIO';
regDato('opcl_inifec', this.value, '', '');
}"
onkeypress="if(pulsar_intro(event))
{
document.fopcl_almacen.finfec.focus();
document.fopcl_almacen.finfec.select();
}"
value = "">

hasta
<input
name = "finfec"
type = "text"
size = "15"
class = "caja"
onfocus = "marcar_caja(this);"
onblur = "desmarcar_caja(this);
if(this.value != '')
{
regDato('opcl_finfec', this.value, 'fopcl_almacen', 'finfec');
}
else
{
this.value = 'FINAL';
regDato('opcl_finfec', this.value, '', '');
}"
onkeypress="if(pulsar_intro(event))
{
document.fopcl_almacen.realizar.focus();
document.fopcl_almacen.realizar.select();
}"
value = "">


Almacen Origen:

<select name="opcl_almacen"
onfocus = "marcar_caja(this);"
onchange = "desmarcar_caja(this);regDato('opcl_almacen', this.value, '', '');">

<?php

$consulta_alm ="SELECT A.almCodigo, A.almDescripcion FROM ".$_SESSION['ALMACENES'.$t]." A";
$resultado_alm = ejecutar($consulta_alm);

while($alm = mysql_fetch_array($resultado_alm))
{

echo "<option value='".$alm['almCodigo']."'>".$alm['almCodigo']." - ".$alm['almDescripcion']."</option>";

}

?>
</select>

Almacen Destino:

<select name="opcl_almacen_d"
onfocus = "marcar_caja(this);"
onchange = "desmarcar_caja(this);regDato('opcl_almacen_d' , this.value, '', '');">

<?php

$consulta_alm ="SELECT A.almCodigo, A.almDescripcion FROM ".$_SESSION['ALMACENES'.$t]." A";
$resultado_alm = ejecutar($consulta_alm);

while($alm = mysql_fetch_array($resultado_alm))
{

echo "<option value='".$alm['almCodigo']."'>".$alm['almCodigo']." - ".$alm['almDescripcion']."</option>";

}

?>
</select>


<div id="divinventario" style="float:left; ">
<br><br>
<span class="txtpres">&nbsp;&nbsp;&nbsp;Transferencia:</span>
<select name="opcl_transferencia" id="opcl_transferencia" >

</select>
</div>
<

<input
name = "realizar"
type = "button"
onclick = "document.fopcl_almacen.submit();"
value = "Realizar">

</form>
  #2 (permalink)  
Antiguo 15/11/2007, 03:29
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Creo una lista con dom y al hacer submit no me pasa las variables

Hola nevergame

Estamos en el foro de JavaScript y es posible que muchos no sepamos PHP. Si pones sólo el código HTML y JavaScript será más fácil ayudarte.

Además deberías usar las etiquetas para que el código se vea mejor.

Saludos,
  #3 (permalink)  
Antiguo 15/11/2007, 04:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Creo una lista con dom y al hacer submit no me pasa las variables

Hola:

La verdad es que algunos controles de los formularios, según el navegador, pueden ser muy difíciles de manipular (yo diría puñeteros )

La asignación o modificación dinámica del atributo name en explorer se suele "resistir", y por esa razón para crear controles dinámicamente, prefiero "clonarlos" en vez de crearlos nuevo, y la clonación la hago a partir de controles ocultos que no necesariamente deban ser parte de formularios (aunque me he despreocupado de validaciones w3.org en esta afirmación)

Para tu ejemplo, sería:

<div style="display: none">
<select name="opcl_transferencia" id="clonar"></select>
</div>

Y la creación del control así:
sel = document.getElementById("clonar").cloneNode(true);
sel.id = "opcl_transferencia";

Con esta forma el atributo name seguramente se quede como tu quieres.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 20:15.