Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/01/2015, 10:32
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Select que agrega datos a varios campos de texto

Cita:
Iniciado por axelb Ver Mensaje
Hay un par de cositas que no termino de entender, y si pudieras explcarmelas seria genial!

1) JSON.parse(xmlhttp.responseText) -> en la definicion de las variables
2) var prop in datos -> en el for
3) caja.name = prop; -> el nombre del textbox es "prop"??
4) caja.value = datos[prop]; -> que valor tomaria el texbox??
Con gusto:
  1. JSON.parse(xmlhttp.responseText): Si te fijas en el archivo PHP, estoy devolviendo un array, pero como no puedo enviarlo directamente, le doy el formato JSON con lo cual el envío no tendrá problemas. Como lo que recibo es texto plano (por responseText), aplico el método JSON.parse para recuperar el objeto JSON que generé en el archivo PHP.
  2. var prop in datos: Luego del punto anterior, lo que me queda es un objeto JSON, por lo que puedo recorrerlo con cualquier bucle (while, for). En JavaScript, hay un bucle llamado for...in, con el cual puedo recorrer arrays y objetos, en donde la primera variable representará a las propiedades del objeto y la segunda, al objeto.
  3. caja.name = prop: En el array que formo en el archivo PHP, los índices son los nombres que originalmente habías asignado a tus cajas de texto y en el objeto JSON formado, son las propiedades, por lo tanto, para asignar los mismos nombres a las cajas de texto que genero en el código JavaScript, tengo que asignarles los valores de las propiedades del objeto JSON.
  4. caja.value = datos[prop]: Lo mismo que en el caso anterior, solo que en lugar de los índices del array (que son las propiedades en el objeto JSON), le asigno los valores que corresponden a cada uno de ellos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand