Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/04/2010, 06:47
Astroscuro
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: boton eliminar

Gracias por tu ayuda. Me has resuelto el problema, pero sobre todo me has enseñado y te lo agradezco. Mi forma de programación es tan mala porque estoy tratando de aprender javascript por mi cuenta. Así que te agradezco que resaltases todos mis errores.

El código va genial. Te escribo como lo he puesto para que lo veas:

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script>
  4. var pos=0;
  5.  
  6. function anadir(formulario,boton) {
  7.   pos++;
  8.  
  9.   //enable delete button
  10.   BotonEliminar=document.getElementById("Eliminar");
  11.   BotonEliminar.disabled=false;
  12.    
  13.   //crear combo-box
  14.   sel=document.createElement('select');
  15.   sel.setAttribute("name","tipo_in" + pos);
  16.   sel.setAttribute("id","tipo_in" + pos);
  17.   option=document.createElement('option');
  18.   option.value="0";
  19.   option.innerHTML="(Por favor, escoja:)";
  20.   sel.appendChild(option);
  21.  
  22.   option=document.createElement('option');
  23.   option.value="1";
  24.   option.innerHTML="campo 1";
  25.   sel.appendChild(option);
  26.  
  27.   option=document.createElement('option');
  28.   option.value="2";
  29.   option.innerHTML="campo 2";
  30.   sel.appendChild(option);
  31.  
  32.   option=document.createElement('option');
  33.   option.value="3";
  34.   option.innerHTML="campo 3";
  35.   sel.appendChild(option);
  36.  
  37.   option=document.createElement('option');
  38.   option.value="4";
  39.   option.innerHTML="campo 4";
  40.   sel.appendChild(option);
  41.  
  42.   formulario.insertBefore(sel,boton);
  43.  
  44.   //crear text nombre
  45.   elem=document.createElement('input');
  46.   elem.setAttribute("type","text");
  47.   elem.setAttribute("size","30");
  48.   elem.setAttribute("maxlength","30");
  49.   elem.setAttribute("name","nombre_in" + pos);
  50.   elem.setAttribute("id","nombre_in" + pos);
  51.   formulario.insertBefore(elem,boton);
  52.  
  53.   //crear text apellido1
  54.   elem=document.createElement('input');
  55.   elem.setAttribute("type","text");
  56.   elem.setAttribute("size","30");
  57.   elem.setAttribute("maxlength","30");
  58.   elem.setAttribute("name","apellido1_in" + pos);
  59.   elem.setAttribute("id","apellido1_in" + pos);
  60.   formulario.insertBefore(elem,boton);
  61.  
  62.  
  63.   //crear text apellido2
  64.   elem=document.createElement('input');
  65.   elem.setAttribute("type","text");
  66.   elem.setAttribute("size","30");
  67.   elem.setAttribute("maxlength","30");
  68.   elem.setAttribute("name","apellido2_in" + pos);
  69.   elem.setAttribute("id","apellido2_in" + pos);
  70.   formulario.insertBefore(elem,boton);
  71.  
  72.   //crear salto de linea  
  73.   elem=document.createElement('br');
  74.   formulario.insertBefore(elem,boton);
  75. }
  76.  
  77. function eliminar(formulario) {
  78.     if(pos>0)
  79.     {
  80.         kill=document.getElementById("tipo_in" + pos);
  81.         formulario.removeChild(kill);
  82.        
  83.         kill=document.getElementById("nombre_in" + pos);
  84.         form.removeChild(kill);
  85.        
  86.         kill=document.getElementById("apellido1_in" + pos);
  87.         form.removeChild(kill);
  88.        
  89.         kill=document.getElementById("apellido2_in" + pos);
  90.         form.removeChild(kill);
  91.        
  92.        
  93.         pos--;
  94.        
  95.         if(pos==0)
  96.         {
  97.             document.getElementById("Eliminar").disabled="true";
  98.         }
  99.     }
  100. }
  101. </script>
  102. </head>
  103. <body>
  104. <form action="llega.php" name="form" id="form" method="post">
  105. <p>A&Ntilde;DIDOS:</p>
  106. <input type="button" value="A&ntilde;adir" onClick="anadir(this.form,this)"/>
  107. <input type="button" value="Eliminar" id="Eliminar" disabled="true" onClick="eliminar(this.form)"/>
  108. <input type="submit" value="Enviar" />
  109. </form>
  110. <br />
  111. </body>
  112. </html>

Por último comentarte que no uso tablas porque este código ha de incrustarse a un formulario mayor y no está contemplado usar tablas dentro de ese formulario.

Aun tengo que hacerle a este código un par de cosas:
-limpiar el espaciado que sale al añadir y eliminar cosas y volver a añadir cosas nuevas
-enviar la variable pos.

Se que lo primero sería englobando todo dentro de un <div> o un <p> y eliminar directamente ese <div> o <p>
o tal vez con un .css haciendo un reset de margin y padding.

Lo segundo sería pasando la variable: "pos" a php en un imput "hide"

Pero todo esto queda fuera del tema del post, el cual ya está resuelto.
A seguir aprendiendo toca :)
Gracias!

PD: no sé si tengo que cerrar el tema de alguna manera