Foros del Web » Programando para Internet » Javascript »

problemas con formularios dinamicos

Estas en el tema de problemas con formularios dinamicos en el foro de Javascript en Foros del Web. hola, le comento mi problema: yo tengo un formulario dinamico, todo se genera bien, no tengo problemas en eso, el problema es que cuando lo ...
  #1 (permalink)  
Antiguo 11/06/2008, 10:27
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
problemas con formularios dinamicos

hola, le comento mi problema:
yo tengo un formulario dinamico, todo se genera bien, no tengo problemas en eso, el problema es que cuando lo quiero enviar a otra pagina no puedo leer los campos que genere dinamicamente, antes he hecho lo mismo y me funcionaba perfectamente, ahora no llego a encontrar el problema, este es el codigo del formulario que genero, lo que va en el select campo lo obtengo de un archivo txt que es pasado a array:

<form id="assist" action="script_sql/consulta_assist.php" method="get" name="assist" >
<fieldset id="fs">
<div id="criterio">
<br>
<select name="campo" id="campo">
<option value="0" selected="selected">Seleccione un campo</option>
<? $j=0; ?>
<optgroup label=" <? echo $nombre_tabla[$j] ?> "> <?
for ($i=0; $i<count($nombre_campo); $i++)
{
if ($i > 0)
{
if ($nombre_tabla[$i] != $nombre_tabla[$i-1])
{
?> </optgroup>
<optgroup label=" <? echo $nombre_tabla[$i] ?> "> <?
}}
?>
<option>
<?
if (strlen($etiqueta_campo[$i])<=2)
{echo $nombre_campo[$i];}
else
{echo $etiqueta_campo[$i];}
?>
</option>
<?
}
?>
</optgroup>
</select>
<select name="comparador" id="comparador">
<option value="0" selected="selected"> Seleccione un comparador </option>
<option>LIKE</option>
<option>></option>
<option><</option>
<option>>=</option>
<option><=</option>
<option>=</option>
<option><</option>
<option>BETWEEN</option>
</select>

<input id="texto" name="texto" type="text" />
<br>
<br>
</div>
</fieldset>
<input type="button" onClick="agregarHijo()" value="<? echo txt_add ?>" />
<input type="button" onClick="eliminarHijo()" value="<? echo txt_delete ?>" />
<input type="button" onClick="eliminarTodo()" value="<? echo txt_deleteall ?>" />
<input align="right" id="input" name="Input" type="submit" value="<? echo txt_submit ?> " />
</form>

y la pagina donde trato de recibir a los datos es la siguiente:

<?php
echo $_GET["campo"];
echo $_GET["comparador"];
echo $_GET["texto"];

$i=1;
while($_GET["campo"."$i"] != "")
{
echo $_GET["campo"."$i"];
echo $_GET["comparador"."$i"];
echo $_GET["texto"."$i"];
echo $_GET["opcion"."$i"];
$i++;
}
?>

Yo habia hecho esto en otra pagina de prueba, pero ahora no me funciona, en la otra anda bien pero aca no logro encontrar el error, lo que yo genero dinamicamente es lo que esta dentro del fielset. si alguien me puede ayuda gracias, si esta poco entendible el codigo sepan disculpar, tratare de aclararlo mas. gracias
  #2 (permalink)  
Antiguo 11/06/2008, 10:35
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: problemas con formularios dinamicos

Hola papalin, bienvenido a los foros :

Estás en el foro javascript y no muestras nada javascript, además en este lenguaje es preferible mostrar solo lo que recibe el navegador (ver código fuente)...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 12/06/2008, 06:38
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problemas con formularios dinamicos

Es cierto, tenes razon, disculpen, lo que pasa es que no sabia donde postearlo, yo creo que el codigo javascript no tiene inconvenientes, de todas formas se los muestro y me dicen que opinan, el problema quizas puede ser en la forma en que llamo a las variables aunque no creo que sea eso porque en otra prueba que hice me funciona perfectamente, el codigo javascript no lo he modificado practicamente de uno a otro.

//---------------------------------------------------------------------------------------------
//Generacion de formulario dinamicos, agregando los criterios de seleccion
//---------------------------------------------------------------------------------------------

var cantidad = 0;
var orden=1;

//esta funcion agrega la condicion "AND" u "OR" que desea el usuario, despues llama a la funcion clonar nodos para agregar el nuevo criterio

function agregarHijo()
{
cantidad++;
document.getElementById('fs').appendChild(document .createElement('br'));
var nuevohijo = document.createElement('select');
nuevohijo.name = "opcion"+cantidad;
var op1 = new Option("AND", "AND");
var op2 = new Option("OR", "OR");
nuevohijo.appendChild(op1);
nuevohijo.appendChild(op2);
document.getElementById('fs').appendChild(nuevohij o);
document.getElementById('fs').appendChild(document .createElement('br'));
clonarNodos();
}

//esta funcion elimina un criterio agregado, tiene el for porque debe eliminar lineas en blanco y los demas nodos que se agregaron

function eliminarHijo()
{
if (cantidad!=0)
{
for (i=0; i<11; i++)
{
var nuevohijo=document.getElementById('fs');
nuevohijo.removeChild(nuevohijo.lastChild);
}
cantidad--;
}
}

function eliminarTodo()
{
while (cantidad!=0)
{
for (i=0; i<11; i++)
{
var nuevohijo=document.getElementById('fs');
nuevohijo.removeChild(nuevohijo.lastChild);
}
cantidad--;
}
}

//esta funcion lo que hace es clonar el nodo en el que se encuantran los criterios de seleccion

function clonarNodos()
{
document.getElementById('fs').appendChild(document .createElement('br'));
var id=document.getElementById("campo");
var nuevos=id.cloneNode(true);
nuevos.style.id='campo'+cantidad;
nuevos.name='campo'+cantidad;
id=document.getElementById("fs");
id.appendChild(nuevos);
espaciar();
var id=document.getElementById("comparador");
var nuevos=id.cloneNode(true);
nuevos.style.id='comparador'+cantidad;
nuevos.name='comparador'+cantidad;
id=document.getElementById("fs");
id.appendChild(nuevos);
espaciar();
var id=document.getElementById("texto");
var nuevos=id.cloneNode(true);
nuevos.style.id='texto'+cantidad;
nuevos.name='texto'+cantidad;
nuevos.value="";
id=document.getElementById("fs");
id.appendChild(nuevos);
document.getElementById('fs').appendChild(document .createElement('br'));
document.getElementById('fs').appendChild(document .createElement('br'));
}


function espaciar() {
var espacio = document.createTextNode("\u00a0");
document.getElementById("fs").appendChild(espacio) ;
}
  #4 (permalink)  
Antiguo 30/06/2008, 07:08
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
problema con formulario dinamico

hola, he escrito antes este problema pero creo que no lo he redactado del todo bien quizas, paso a detallarselos:

tengo un formulario en una pagina php, al mismo se le pueden agregar mas campos mediante dhtml, mi problema es que no puedo recibir los nuevos campos generados, yo antes hice una pagina de prueba y todo funciona perfectamente. Este es el codigo de mi formulario php:


#frm_consultassist_consultation

<form id="assist" action="script_sql/consulta_assist.php" method="GET" name="assist" >
<fieldset id="fs">
<br>
<select name="campo" id="campo">
<option value="vacio"><? echo txt_concept ?></option>
<optgroup label=" <? echo $nombre_tabla[0] ?>">
<? for ($i=0; $i<count($nombre_campo); $i++) {
if ($i > 0) {
if ($nombre_tabla[$i] != $nombre_tabla[$i-1])
{ ?>
</optgroup>
<optgroup label=" <? echo $nombre_tabla[$i] ?> "> <?
} }
?>
<option value="<?php echo $nombre_campo[$i];?>"> <? if (strlen($etiqueta_campo[$i])<=2){echo $nombre_campo[$i];} else {echo $etiqueta_campo[$i];}?></option>
<? } ?>
</optgroup>
</select>
<select name="comparador" id="comparador">
<option value="vacio"><? echo txt_comparator ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
<option value="LIKE"> LIKE </option>
<option value="="> = </option>
<option value=">"> &gt; </option>
<option value="<"> &lt; </option>
<option value=">="> &gt;= </option>
<option value="<="> &lt;= </option>
<option value="BETWEEN"> BETWEEN </option>
</select>
<input id="texto" name="texto" type="text" />
<br>
<br>
</fieldset>
<input type="button" onClick="agregarHijo()" value="<? echo txt_add ?>" />
<input type="button" onClick="eliminarHijo()" value="<? echo txt_delete ?>" />
<input type="button" onClick="eliminarTodo()" value="<? echo txt_deleteall ?>" />
<input align="right" id="input" name="input" type="submit" value="<? echo txt_submit ?> " />
</form>




Bueno, ahora mi script para generar dinamicamente mi formulario es el siguiente:

#clonar.js

var cantidad = 0;


//esta funcion agrega la condicion "AND" u "OR" que desea el usuario, despues llama a la funcion clonar nodos para agregar el nuevo criterio

function agregarHijo()
{
cantidad++;
document.getElementById('fs').appendChild(document .createElement('br'));
var nuevohijo = document.createElement('select');
nuevohijo.name = "opcion"+cantidad;
var op1 = new Option("AND", "AND");
var op2 = new Option("OR", "OR");
nuevohijo.appendChild(op1);
nuevohijo.appendChild(op2);
document.getElementById('fs').appendChild(nuevohij o);
document.getElementById('fs').appendChild(document .createElement('br'));
clonarNodos();
}

//esta funcion elimina un criterio agregado, tiene el for porque debe eliminar lineas en blancoy los demas nodos que se agregaron
function eliminarHijo()
{
if (cantidad!=0)
{
for (i=0; i<11; i++)
{
var nuevohijo=document.getElementById('fs');
nuevohijo.removeChild(nuevohijo.lastChild);
}
cantidad--;
}
}

function eliminarTodo()
{
while (cantidad!=0)
{
for (i=0; i<11; i++)
{
var nuevohijo=document.getElementById('fs');
nuevohijo.removeChild(nuevohijo.lastChild);
}
cantidad--;
}
}

//esta funcion lo que hace es clonar el nodo en el que se encuantran los criterios de seleccion
function clonarNodos()
{
document.getElementById('fs').appendChild(document .createElement('br'));
var id=document.getElementById("campo");
var nuevos=id.cloneNode(true);
nuevos.style.id='campo'+cantidad;
nuevos.name='campo'+cantidad;
id=document.getElementById("fs");
id.appendChild(nuevos);
espaciar();
var id=document.getElementById("comparador");
var nuevos=id.cloneNode(true);
nuevos.style.id='comparador'+cantidad;
nuevos.name='comparador'+cantidad;
id=document.getElementById("fs");
id.appendChild(nuevos);
espaciar();
var id=document.getElementById("texto");
var nuevos=id.cloneNode(true);
nuevos.style.id='texto'+cantidad;
nuevos.name='texto'+cantidad;
nuevos.value="";
id=document.getElementById("fs");
id.appendChild(nuevos);
document.getElementById('fs').appendChild(document .createElement('br'));
document.getElementById('fs').appendChild(document .createElement('br'));

}

function espaciar() {
var espacio = document.createTextNode("\u00a0");
document.getElementById("fs").appendChild(espacio) ;
}


Y finalmente donde recibo los datos es este script:

#consulta_assist.php

<?php
echo $_GET["campo"];
echo $_GET["comparador"];
echo $_GET["texto"];

$i=1;

while($_GET["campo"."$i"] != "")
{
echo $_GET["opcion"."$i"];
echo $_GET["campo"."$i"];
echo $_GET["comparador"."$i"];
echo $_GET["texto"."$i"];
$i++;
}

if (isset($campo1))
{
echo "definido";
}
else
{
echo "NO DEFINIDO";
}
if (isset($campo2))
{
echo "definido";
}
else
{
echo "NO DEFINIDO";
}
?>


Los ultimos "if" de este script son para ver si me define el campo o no, lo que hago es clonar el fieldset de mi formulario, pero el problema cuando quiero recoger los datos enviados esta en que parece que no me define los campos, es decir que no existen, pero el codigo javascript anda perfectamente, me genera los campos sin problemas.

Bueno, agradeceria enormemente si me pudieran ayudar, lo postee aqui porque en realidad no se si es problema de php o de javascript. muchas gracias
  #5 (permalink)  
Antiguo 30/06/2008, 08:15
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: problema con formulario dinamico

Te estás asegurando de que te esté agregando los nuevos campos dentro del formulario (<form>) ??
Si no lo tienes instalado, te recomiendo firebug para Mozilla Firefox para que puedas ir viendo los cambios hechos dinamicamente en el HTML y así inspeccionar mejor.

Un saludo
  #6 (permalink)  
Antiguo 30/06/2008, 08:20
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: problemas con formularios dinamicos

Temas unidos. No abras nuevos mensajes para la misma duda. Veo que continúas poniendo código PHP así que, al menos en mi caso, se dificulta la tarea para poder ayudarte.

Saludos,
  #7 (permalink)  
Antiguo 30/06/2008, 08:35
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problemas con formularios dinamicos

me genera bien los campos, pero no entiendo por que no los define, cada vez que ejecuto la funcion javascript "agregarhijos" me aparece el nuevo nodo creado, hasta ahi todo perfecto, cargo los datos que necesito y todo bien, el problema esta cuando envio los datos del formulario, en la pagina que recibe los datos no me aparecen definidos los datos.
  #8 (permalink)  
Antiguo 30/06/2008, 08:54
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problemas con formularios dinamicos

Hola de nuevo, acabo de instalar el complemento firebug y anda todo perfecto, me genera los nuevos campos y los nombres estan todo ok, la verdad que no se cual puede ser mi problema, si a alquien le interesa les puedo pasar el codigo del sistema entero para verlos, gracias y saludos
  #9 (permalink)  
Antiguo 30/06/2008, 09:03
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: problemas con formularios dinamicos

Si ves que no lo das resuelto enviamelo que le hecho un vistazo:

bye
Cita:
Iniciado por papalin Ver Mensaje
Hola de nuevo, acabo de instalar el complemento firebug y anda todo perfecto, me genera los nuevos campos y los nombres estan todo ok, la verdad que no se cual puede ser mi problema, si a alquien le interesa les puedo pasar el codigo del sistema entero para verlos, gracias y saludos

Última edición por ivangc; 25/03/2010 a las 04:10
  #10 (permalink)  
Antiguo 30/06/2008, 09:36
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problemas con formularios dinamicos

acabo de mandarte por mail todos los scripts, el sistema entero y el script para la base de datos.

muchas gracias.

Saludos
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 22:26.