Ver Mensaje Individual
  #20 (permalink)  
Antiguo 06/07/2009, 19:05
Avatar de David
David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: cambira un texto por un input al presionar un submi

Voy a comentar cada parte de tu código para que entiendas por qué falla:
Código Javascript:
Ver original
  1. /* Bien. Creas un nuevo campo y lo asignas a la variable elem */
  2. elem=document.createElement('input')
  3. /* Mal. Vuelves a crear un nuevo campo y lo vuelves a asignar a elem, pisando el anterior valor */
  4. elem=document.createElement('input')
  5. /* Mal. Vuelves a crear un nuevo campo y lo vuelves a asignar a elem, pisando el anterior valor */
  6. elem=document.createElement('input')
  7.  
  8. elem.type = "text"
  9. elem.value = "<?php $a ?>"
  10. elem.name = "nada"
  11.  
  12. /* Mal. Con document.getElementById() sólo puedes obtener un elemento a la vez */
  13. var oldElement = document.getElementById("pn,sn,pa");
  14.  
  15. /* Sólo llamas una vez al método replaceChild(). Por lo que sólo reemplazarás un elemento */
  16. oldElement.parentNode.replaceChild(elem, oldElement);
Lo mejor es que crees una función que reciba como parámetro el id del elemento a reemplazar, el texto y el nombre del nuevo campo. Por ejemplo:
Código Javascript:
Ver original
  1. function reemplazar(elemento, texto, nombre) {
  2.     /* Parámetros:
  3.             elemento: id del elemento que será reemplazado
  4.             texto: texto del campo que será creado
  5.             nombre: nombre del campo que será creado
  6.  
  7.             Ejemplo de llamada a la función:
  8.                 reemplazar("pn", "texto", "t1");
  9.             Reemplazará el elemento con id "pn" por un nuevo campo con name "t1" con el texto "texto"
  10.     */
  11.     var elem = document.getElementById("elemento");
  12.     var campo = document.createElement("input");
  13.     campo.type = "text";
  14.     campo.name = nombre;
  15.     campo.value = texto;
  16.     elem.parentNode.replaceChild(campo, elem);
  17. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.