Voy a comentar cada parte de tu código para que entiendas por qué falla:
Código Javascript
:
Ver original/* Bien. Creas un nuevo campo y lo asignas a la variable elem */
elem=document.createElement('input')
/* Mal. Vuelves a crear un nuevo campo y lo vuelves a asignar a elem, pisando el anterior valor */
elem=document.createElement('input')
/* Mal. Vuelves a crear un nuevo campo y lo vuelves a asignar a elem, pisando el anterior valor */
elem=document.createElement('input')
elem.type = "text"
elem.value = "<?php $a ?>"
elem.name = "nada"
/* Mal. Con document.getElementById() sólo puedes obtener un elemento a la vez */
var oldElement = document.getElementById("pn,sn,pa");
/* Sólo llamas una vez al método replaceChild(). Por lo que sólo reemplazarás un elemento */
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 originalfunction reemplazar(elemento, texto, nombre) {
/* Parámetros:
elemento: id del elemento que será reemplazado
texto: texto del campo que será creado
nombre: nombre del campo que será creado
Ejemplo de llamada a la función:
reemplazar("pn", "texto", "t1");
Reemplazará el elemento con id "pn" por un nuevo campo con name "t1" con el texto "texto"
*/
var elem = document.getElementById("elemento");
var campo = document.createElement("input");
campo.type = "text";
campo.name = nombre;
campo.value = texto;
elem.parentNode.replaceChild(campo, elem);
}