Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/01/2011, 17:32
solovoy
 
Fecha de Ingreso: enero-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 1
Guardar valor en campos dinamicos

Hola de nuevo. Estoy aprendiendo a programar y quise empezar con una pagina de letras. Lo que estoy haciendo ahora es un formulario que permita ingresar un disco a la pagina. Como los discos no tienen siempre la misma cantidad de temas, lo que hice fue un campo en el que se puedan ingresarla cantidad de temas que tiene el disco y que la pagina muestre el numero de campos de texto correspondientes para ingresar los nombres de todos los temas.

El problema que me encontre es que si un usuario ingresa la cantidad de temas, despues todos los nombres de los temas y al final se da cuenta que en realidad el disco tiene un tema mas, entonces al cambiar el numero de temas, los valores de todos los demas campos se borran. O sea, tiene que ingresar todo de nuevo.

El codigo que tenia en mente y que pensaba que podia funcionar es el siguiente:

Código Javascript:
Ver original
  1. var temas = getXmlHttpRequestObject();
  2.  
  3. var cantidadanterior = 0;
  4.  
  5. function cantidadTemas() {
  6.     if (temas.readyState == 4 || temas.readyState == 0) {
  7.         var str = document.getElementById('cantidad').value;
  8.         if (!isInteger(str) ) {
  9.             return;
  10.         }
  11.         var ss = document.getElementById('temas')
  12.         ss.innerHTML = '';
  13.         var x = new Array();
  14.         if (cantidadanterior != 0) {
  15.             for (i=1;i<=cantidadanterior;i++) {
  16.                 eval("x[i] = document.getElementById('tema"+i+"').value");
  17.             }
  18.         }
  19.         for (i=1 ; i<=str; i++) {
  20.             var sugges = i + '. <br /><input type="text" id="tema' + i + '" name="tema' + i +'" autocomplete="off" /><br />';
  21.             ss.innerHTML += sugges;
  22.             if (cantidadanterior != 0) {
  23.                 eval("document.getElementById('tema"+i+"').value = x[i]");
  24.             }
  25.             if (i==str) {
  26.                 ss.innerHTML += '<br />';
  27.             }
  28.         }
  29.         cantidadanterior = document.getElementById('cantidad').value;
  30.     }
  31. }

Obviamente, ese codigo no funciona y es por eso que hago la consulta. Supongo que habra otras formas, pero no encuentro como.

Muchas Gracias.