Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Campo agregado por Javascript (document.createElement) no me llega por $_POST en php

Estas en el tema de Campo agregado por Javascript (document.createElement) no me llega por $_POST en php en el foro de Javascript en Foros del Web. que tal amigos? tengo un problema que no se me ocurre cual es la causa. Hace unos dias postee un tema para agregar un campo ...
  #1 (permalink)  
Antiguo 16/06/2009, 06:51
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Pregunta Campo agregado por Javascript (document.createElement) no me llega por $_POST en php

que tal amigos? tengo un problema que no se me ocurre cual es la causa.
Hace unos dias postee un tema para agregar un campo a un formulario dinamicamente mediante 'document.createElement', ahora estoy queriendo acceder al valor almacenado en ese campo al momento de submitar el formulario pero no me llega por $_POST el valor.. como si no existiera en el formulario..

la funcion para agregar el campo, en este caso es un combo, es la siguiente:
Código JAVASCRIPT:
Ver original
  1. function crearProfesiones(arrayProfesiones) {
  2.    /* por parametros recibo una cadena con la lista de profesiones y la desarmo a un array */
  3.     var profesiones = arrayProfesiones.split(";");
  4.    /* pregunto si la cantidad de campos (profesiones) es mayor a la cantidad actual de combos activos */
  5.     if (profesiones.length > num) {
  6.         num++;
  7.         cantidad++;
  8.         /* creo un div donde meto el SELECT y el boton para sacar el SELECT agregado */
  9.         fi = document.getElementById('camposProfesion');
  10.         contenedor = document.createElement('div');
  11.         contenedor.id = 'div'+cantidad;
  12.         fi.appendChild(contenedor);
  13.        
  14.         /* creo el SELECT */
  15.         ele = document.createElement('select');
  16.         ele.name = 'profesion'+cantidad;
  17.         /* lo agrego dentro del DIV */
  18.         contenedor.appendChild(ele);
  19.         /* agrego una opcion por defecto que no tenga valor */
  20.         op = new Option("- Seleccione Profesion -", "");
  21.         ele.appendChild(op);
  22.         /* recorro el array */
  23.         for (var i in profesiones) {
  24.             /* dentro de la cadena tengo el valor y el titulo del OPTION, separo estos valores */
  25.             var profesion = profesiones[i].split(":");
  26.             op = new Option((profesion[0]), (profesion[1]));
  27.             /* agrego el OPTION al SELECT */
  28.             ele.appendChild(op);
  29.         }
  30.         /* agrego un boton para eliminar el DIV completo */
  31.         ele2 = document.createElement('input');
  32.         ele2.type = 'button';
  33.         ele2.value = 'X';
  34.         ele2.name = 'div'+cantidad;
  35.         ele2.title = 'Eliminar Profesion';
  36.         ele2.className = 'BOTONCERRAR';
  37.         ele2.onclick = function () { borrarProfesion(this.name); }
  38.         contenedor.appendChild(ele2);
  39.     } else {
  40.         /* si llego a la cantidad total de profesiones muestro un aviso */
  41.         alert("No puede agregar mas profesiones");
  42.     }
  43.     /* si ya agrego la cantidad maxima oculto el boton */
  44.     if (profesiones.length <= num) { document.getElementById('botonAgregar').style.visibility = "hidden"; }
  45. }
la funcion borrar profesion ejecuta el 'removeChild' y saca el DIV

en mi pagina tengo una tabla dentro del FORM, y una celda destinada a la funcion que agrega los SELECT:
Código HTML:
<TD align="left" id="camposProfesion"></TD> 
y el boton para agregar un SELECT mas (la funcion PHP me devuelve la cadena con las profesiones separadas con ';' y cada parte a su vez con el valor y titulo separados por ':'):
Código HTML:
<INPUT id="botonAgregar" type="button" value="Agregar Profesion" onclick="javascript:crearProfesiones(<?php echo "'"; listaProfesiones(False); echo "'"; ?>)"> 
en mi script PHP que procesa los POST puse un print_r($_POST); para ver todos los valores que recibo y no tengo ninguno de los SELECT que agrego dinamicamente..
hay algun problema con el javascript? que estoy haciendo mal?
gracias por la ayuda!

Última edición por hschimpf; 16/06/2009 a las 11:40 Razón: cambie marcado PHP por Javascript..
  #2 (permalink)  
Antiguo 16/06/2009, 09:54
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: Campo agregado por Javascript (document.createElement) no me llega por $_P

alguna ayuda por favor??
  #3 (permalink)  
Antiguo 16/06/2009, 10:46
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Campo agregado por Javascript (document.createElement) no me llega por $_P

comprobaste que el div donde agregas este dentro del form?
y que en el $_POST estes tomando el verdadero valor que le das con el script?
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #4 (permalink)  
Antiguo 16/06/2009, 11:45
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: Campo agregado por Javascript (document.createElement) no me llega por $_P

si, esta dentro del FORM, la tabla donde agrego estos campos esta dentro del form..
En el $_POST solo llegan los valores como nombre, etc.. pro estos campos agregados dinamicamente ninguno retorna un valor al $_POST..
este es el FORM completo:
Código HTML:
<FORM action="./inc/inc.update.php?new=true" method="POST" name="formNuevaPersona">
<INPUT type="text" name="nombre" id="foco" onkeydown="javascript:return noEnter(event)">
<INPUT type="text" name="apellido" onkeydown="javascript:return noEnter(event)">
<INPUT type="text" name="telefono" class="TINYINPUT" maxlength="11" onkeyup="mascara(this,'-',tel,true)" onkeydown="javascript:return nros(event)">
<INPUT type="text" name="celular" class="TINYINPUT" maxlength="12" onkeyup="mascara(this,'-',cel,true)" onkeydown="javascript:return nros(event)">
<INPUT type="text" name="direccion" onkeydown="javascript:return noEnter(event)">
-------------hay mas campos aqui--------------
<DIV align="left" id="camposProfesion"></DIV>
<INPUT id="botonAgregar" type="button" class="BOTONAZUL" value="Agregar Profesion" style="width: 120px;" onclick="javascript:crearProfesiones('Ingeniero:1;Analista:2;Licenciado:3')">
<INPUT type="button" class="BOTONGRIS" onclick="javascript:validarCampos('nombre;apellido;codTipoDocumento;nroDocumento;direccion;codCiudad;sexo;codNacionalidad',this.form);" value="Agregar">
<INPUT type="button" class="BOTONROJO" value="Cancelar" onclick="javascript:location='./';">
</FORM> 
sobre el DIV se agregan los combos desde javascript

Última edición por hschimpf; 16/06/2009 a las 12:17
  #5 (permalink)  
Antiguo 17/06/2009, 06:01
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: Campo agregado por Javascript (document.createElement) no me llega por $_P

lo solucione de otra forma, pero queria que sea dinamico.. agrege los campos de forma oculta y los muestro con el onclick del boton..
Gracias igual por la ayuda!
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:02.