Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/01/2015, 09:44
Mental
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: Modificar atributos de inputs

Es un formulario diseñado para la entrada de información que se almacena en una base de datos.
Este es el código que genera los diferentes botones que forman parte del formulario.


Código HTML:
Ver original
  1. <input type="submit" name="btn1" value="Primero"/>
  2. <input type="submit" name="btn1" value="Anterior"/>
  3. <input type="text"   class="vis" name="txtvariable" value="<?php echo $cont ?>"/>
  4. <input type="submit" name="btn1" value="Siguiente"/>
  5. <input type="submit" name="btn1" value="Ultimo"/>
  6. <?php echo "<font size=2> de ".$totreg."</font>";?>
  7.  
  8.  
  9. <input type="button" name="btn2" value="Nuevo"                      onclick="nuevo()" />
  10. <input type="button" name="btn1" value="Modificar"                  onclick="modificar()"/>
  11. <input type="submit" name="btn1" value="Buscar"/>
  12. <input type="submit" name="btn2" value="Eliminar" id="20"           onclick="eliminar()" />
  13. <input type="submit" name="btn2" value="Aceptar"  id="19" disabled />
  14. <input type="submit" name="btn2" value="Pruebas"                    onclick="prueba()"   />
  15. <input type="reset"  name="btn2" value="Cancelar" id="21" disabled  onclick="cancelar()" />

El botón de la linea 9 del código anterior con value="Nuevo" tiene como objeto:
dejar en blanco todos los casilleros (input type text) de entrada de datos.
Suprimir el atributo "solo lectura" de esos casilleros (input type text).
Pasar a estado "disabled" los botones que hay en la linea 1 à 5, 10,11,12,14.
Pasar a "enabled" los botones de la linea 13 y 15, que tienen su atributo en disabled.

Esto lo consigo mediante el siguiente codigo javascript invocando la función nuevo(), desde el evento onclick del mencionado botón:

Código Javascript:
Ver original
  1. function nuevo()
  2.         {  
  3.             document.getElementById('0').value=null;
  4.             document.getElementById('1').value=null;
  5.             document.getElementById('2').value=null;
  6.             document.getElementById('3').value="Apellidos";
  7.             document.getElementById('4').value=null;
  8.             document.getElementById('5').value=null;
  9.             document.getElementById('6').value=null;
  10.             document.getElementById('7').value=null;
  11.             document.getElementById('8').value=null;
  12.             document.getElementById('9').value=null;
  13.             document.getElementById('10').value=null;
  14.             document.getElementById('11').value=0.0;
  15.             document.getElementById('12').value=0.0;
  16.             document.getElementById('13').value=0.0;
  17.             document.getElementById('14').value=0.0;
  18.             document.getElementById('15').value=null;
  19.             document.getElementById('16').value=null;
  20.             document.getElementById('17').value=null;
  21.             document.getElementById('18').value=null;
  22.             document.getElementById('19').value="Aceptar";
  23.        
  24.             var mivar = document.getElementsByTagName('input');
  25.             for(i=0; i< mivar.length; i++)
  26.             {
  27.                 mivar[i].readOnly = false;
  28.             }
  29.             var mivar = document.getElementsByTagName('select');
  30.               for(i=0; i< mivar.length; i++)
  31.             {
  32.               mivar[i].disabled = false;
  33.             }
  34.             var mivar = document.getElementsByName('btn1');
  35.               for(i=0; i< mivar.length; i++)
  36.             {
  37.               mivar[i].disabled = true;
  38.             }
  39.             mivar = document.getElementById('9');
  40.             mivar.disabled = false;
  41.  
  42.             mivar = document.getElementById('18');
  43.             mivar.readOnly = false;
  44.             mivar = document.getElementById('19');
  45.             mivar.disabled = false;
  46.             mivar = document.getElementById('20');
  47.             mivar.disabled = true;
  48.             mivar = document.getElementById('21');
  49.             mivar.disabled = false;
  50.     };

Pero aquí me empezó a surgir el problema que me ha llevado a intentarlo a tarvés de php.
El caso es que dentro de los input hay un select que reproduzco:
Código Javascript:
Ver original
  1. <tr>
  2.         <td>
  3.              Apellidos:
  4.         </td>
  5.     <td>
  6.         <select id="3" class="tx"  disabled= "disabled" name="txtape" value="">
  7.         <option value= "<?php echo $var3id ?>"><?php echo $var3 ?></option>
  8.             <?php
  9.                 while ($fila=mysql_fetch_row($resultape))
  10.                 {              
  11.                                 echo "<option value='".$fila['0']."'>".$fila['1']."</option>";
  12.                 echo "<$var3id value='".$fila['0']."' ";
  13.                 }
  14.                          ?>
  15.         </select>
  16.     </td>
  17. </tr>

Pues bien, a través del código javascript, todos los inputs quedan en blanco, salvo el de este select, que mantien la información de la última selección en lugar de quedarse en blanco.
He comprobado que a través de php que establece la variable $var=null, el campo queda vacio. Cosa que, salvo indicaciones vuestras, consigo si el input "Nuevo" pasa de type=button a type=submit. Pero al hacerlo como submit, todo lo realizado a través del evento onclick que llama a la funcion nuevo(), queda como si hiciera un "reset", dejando el formulario en el estado anterior con todos los inputs rellenos, salvo el del select que queda en blanco.

De ahí que lo que estoy intentando es conseguir a través de php, lo que hago a través de javascript.
Espero haber trasladado la idea de lo que pretendo.
En resumidas cuentas es:
controlar o modificar atributos de etiquetas html mediante código php.
Gracias.