Foros del Web » Programando para Internet » PHP »

Obtener valores de input text y div sin conocer su identificador y creados con javasc

Estas en el tema de Obtener valores de input text y div sin conocer su identificador y creados con javasc en el foro de PHP en Foros del Web. Hola a todos, os voy a explicar mi nuevo problema a ver si podeis darme una pista de como empezar... Tengo una serie de DIVs ...
  #1 (permalink)  
Antiguo 29/08/2008, 20:22
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 10 meses
Puntos: 2
Obtener valores de input text y div sin conocer su identificador y creados con javasc

Hola a todos,
os voy a explicar mi nuevo problema a ver si podeis darme una pista de como empezar...
Tengo una serie de DIVs cuyo número no puedo conocer porque dependerá del número de veces que pulse el usuario un botón (se van creando con javascript). Cada uno de los DIV que aparecen contiene un input text, un botón, un DIV y otro botón. El contenedor (el que engloba el input, los botones...) tendrá de identificador modulo_X... la X valdrá 0,1, 2,,,dependiendo de si es el primero, el segundo... El contenido de cada módulo tiene como identificador: los botones div_X y b_X respectivamente, el input tiene como name cap_X y el div tiene como identificador Cont_X...
Lo que necesito es que al pulsar el usuario un botón, se cree un documento, con la información de los input text y lo que tenga escrito el DIV (no el contenedor, si no el que está dentro).
Si el DIV no se puede leer desde PHP lo solucionaría, porque crearía un input hidden y le doy como valor el contenido del DIV desde javascript.

EL problema es que la forma que se me ocurre de leer esos datos que necesito es con javascript, pero por lo que he leido, desde javascript no puedo crear el documento (que será xml) y meterle la información, porque eso debe hacerse desde el servidor. (además tengo más cosas que tendré que meter en una BD y desde javascript no puedo).

Y con PHP no se me ocurre la forma de leer los inputs text porque no sé los 'name' que van a tener, puede haber desde cap_0...hasta...cap_123 por poner algo.

Para complicar un poco más la cosa, visualmente el usuario los ve como una jerarquía, por lo que a la hora de pasarlos al xml debo tener en cuenta cual depende de cual. Para eso he pensado que en vez de llamar a los input text como cap_X, los tendría que llamar:
  • cap_1
    • cap_1_1
      cap_1_2
    cap_2

Así se complica más lo de saber el 'name', porque antes podía hacer un bucle al tuntún...pero ahora no....

RESÚMEN: (que me voy por las ramas) ¿Se puede obtener el valor de los inputs text creados con javascript, teniendo en cuenta que los 'name' no los sé?
¿Se puede obtener desde PHP el texto contenido en un DIV (y sin saber el identificador tampoco)?

Espero que podais ayudarme...algo que pueda leer... algo....

Muchas gracias

---Por cierto he visto que en algunos casos la gente le pone identificadores a los input text, pero ¿es correcto? y ¿cómo podría acceder a esa información? Porque si tengo <input type="text" name="ejemplo" value="mostrar" id="cap_0"/>
con echo $ejemplo me devuelve el contenido, en este caso "mostrar", pero ¿y el identificador?
  #2 (permalink)  
Antiguo 30/08/2008, 00:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Obtener valores de input text y div sin conocer su identificador y creados

mira, estos elementos del DOM se denominan elementos, y a su ves... pertenecen a una colección...

estas colecciones, pueden leerse fácilmente.. por indices, un ejemplo..

Código:
document.forms
si a document.forms le indagamos la propiedad length nos devuelve el numero total de elementos de esta colección, bien....

si entonces, elegimos el primer indice (cero) de document.forms[0] este nos devuelve el primer formulario en el DOM adquirido o creado en modo de flujo (osea, de arriba hacia abajo)

ahora, bien... existen librerías para acceder al DOM mas simple y ademas, cross-browser (mi favorita: jQuery) que nos permiten evitar tener que combatir con los navegadores... ¿porque?

porque no todos manejan el DOM (supuestamente estándar) como deberían, especialmente Internet Explorer .... por ejemplo

Código:
document.all
es igual en navegadores basados en Netscape (Mozilla)

Código:
document.getElementByTag('*')
una ves obtenido estas colecciones, podremos navegar entre sus nodos (o elementos) de manera secuencial.... si ya gozas de conocimientos con arrays y demás ciclos, etc, etc... bingo!


NOTA que en particular, es mi opinión... no se de códigos, pues.... suerte..

¿como acceder a determinado tag del DOM??

bueno, investiga y estudia precisamente eso.... el DOM (xD)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/08/2008, 00:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Obtener valores de input text y div sin conocer su identificador y creados

Cita:
¿Se puede obtener desde PHP el texto contenido en un DIV (y sin saber el identificador tampoco)?
lamentablemente no.... ya que los divs no envían información... solo los form; sobre todo, PHP no puede leer divs.... en realidad solo lee paquetes POST elaborados a través de formularios o sockets, CURL, etc, etc....

bueno, en realidad puedes lograrlo de modo híbrido con Javascript, y enviarlo al script en todo caso... pero, no se puede hacer claramente con PHP, es imposible....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 30/08/2008, 05:46
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Obtener valores de input text y div sin conocer su identificador y creados

Hola!! gracias por contestar.
Todo esto que me pones del DOM, yo lo uso para javascript, no encuentro nada para que se pueda usar con PHP... yo necesito hacer lo que quiero desde PHP... :(
Es posible usarlo en PHP?? (Lo que he encontrado, es DOM para tratar xml desde PHP)
  #5 (permalink)  
Antiguo 30/08/2008, 07:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Obtener valores de input text y div sin conocer su identificador y creados

recuerda que PHP/Javascript son ámbitos totalmente distintos, tambien recuerda el uso que le estas dando a tus elementos.... no es el correcto, pero puede funcionar.... (aunque no es seguro, por lo mismo)

bien, aun así podrías exportar o enviar el DOM del documento vía un formulario, quizá.... con un <textarea/> oculto... claro, usando Javascript

así, ya dentro de PHP ... lees la variable con un parser de DOM/XML como justo mencionas...

de ahí, el tratamiento es casi el mismo.... pero bueno.... es tu idea, suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 03/09/2008, 18:08
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Obtener valores de input text y div sin conocer su identificador y creados

Gracias por tus respuestas,
finalmente puse el mismo name, a todos y un input hidden donde almacenaba la jerarquía, de ésta forma puedo usar php sin problemas.
Muchas gracias :)
  #7 (permalink)  
Antiguo 03/09/2008, 21:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Obtener valores de input text y div sin conocer su identificador y creados

sin mas, te invito a poner el resultado (en codigo) y si es posible una explicacion tuya...

ya que puede serle util a cualquier persona mas... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 19:23.