Para poder editarlos rapidamente, he creado una función Javascript en la que al pulsar sobre el texto, este se convierte en un campo input, y a su lado aparecen una imagen de validar y otra de cancelar.
Al darle a cancelar, el input se vuelve a convertir en texto (esto funciona bien), y al darle a validar en teoría, mediante ajax, el nuevo texto debería modificarse en la DB y aparecer en el <span>. Pues bien, al intentar hacer esto último no consigo recoger el texto que hay dentro del input.
Las funciones que estoy utilizando os las pongo a continuación, para ver si podeis ayudarme. Lo que está en negrita es donde el depurador del Firefox me dice que falla el asunto.
Código:
Gracias! function aN(id){ // Cambia el texto por el input para editarlo var texto = document.getElementById('t'+id).innerHTML; var texto2 = '<input type=text name=i'+id+' size=30 value="'+texto+'" class=formi>'; texto2 = texto2 + '<img src=http://www.zonanime.com/archivos/guia/do.gif width=12 onclick=edit('+id+');> '; texto2 = texto2 + '<img src=http://www.zonanime.com/archivos/guia/back.gif width=12 onclick=aN2('+id+',"'+escape(texto)+'")>'; document.getElementById('t'+id).innerHTML = texto2; document.getElementById('t'+id).onclick = ''; } function aN2(id,texto){ // Borra el formulario y regresa al texto original document.getElementById('t'+id).innerHTML = unescape(texto); document.getElementById('t'+id).onclick = 'aN('+id+')'; } function edit(id){ // Edita el campo con el nuevo valor var texto = document.getElementById('i'+id); var url = 'admin.asp?acc=edit&c=cap&cid='+id+'&t='+unescape(texto)+'&uid='+getCookie('usrID'); alert(texto); ajax.open("GET", url, true); ajax.onreadystatechange = function(){ if (ajax.readyState==4){ var response = ajax.responseText; alert(response); if (response=='add') { document.getElementById('out').innerHTML = 'Correctamente Editado <b>'+unescape(texto)+'</b>'; document.getElementById('t'+id).innerHTML = unescape(texto); }else{ document.getElementById('out').innerHTML = 'Error al editar <b>'+unescape(texto)+'</b>'; } } } ajax.send(null); }