A continuación pongo el código completo. Tener en cuenta que estoy utilizando XAJAX.
Código HTML:
<? session_start(); require_once("xajax/xajax.inc.php"); $xajax = new xajax(); $xajax -> registerFunction("guardarTit"); function guardarTit(){ $_SESSION['titulo']=$_GET['tit']; $objResponse = new xajaxResponse(); $objResponse -> addAssign("cabecera", "innerHTML", "<h3 id='tit' onclick='xajax_mostrarForm()'>".$_SESSION['titulo']."</h3>"); return $objResponse->getXML(); } $xajax -> processRequests(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin título</title> <script> function cambiarTit(){ var formTit = document.createElement("form"); formTit.setAttribute('id','formTit'); var input = document.createElement("input"); input.setAttribute('type','text'); input.setAttribute('id','titulo'); input.setAttribute('name','tit'); input.setAttribute('value', document.getElementById("tit").firstChild.nodeValue); var input2 = document.createElement("input"); input2.setAttribute('type','submit'); input2.setAttribute('id','guardar'); input2.setAttribute('value', 'Guardar'); input2.setAttribute('onclick', 'xajax_guardarTit(xajax.getFormValues("formTit"))'); formTit.appendChild(input); formTit.appendChild(input2); document.getElementById("cabecera").replaceChild(formTit, document.getElementById("tit")); } </script> <?php $xajax -> printJavascript("/Pruebas/xajax/");?> </head> <body> <div id="cabecera"> <h3 id="tit" onclick="cambiarTit()">Título</h3> </div> </body> </html>
Se pone el título correctamente y luego (al cabo de medio segundo) vuelve al estado inicial, es decir, vuelve a poner "Título".
La verdad es que no tengo ni idea de qué puede estar pasando y levo todo el día en este "simple" ejemplo.
Espero que podais ayudarme! Estoy demasiado perdido...
Saludos,