Foros del Web » Programando para Internet » Javascript »

Problema al coger datos de un input

Estas en el tema de Problema al coger datos de un input en el foro de Javascript en Foros del Web. Buenas; tengo una pagina en la que se despliegan una serie de datos, dentro de un <span>. Para poder editarlos rapidamente, he creado una función ...
  #1 (permalink)  
Antiguo 29/07/2006, 16:16
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 5 meses
Puntos: 0
Problema al coger datos de un input

Buenas; tengo una pagina en la que se despliegan una serie de datos, dentro de un <span>.
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:
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+');>&nbsp;';
				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);
}
Gracias!
__________________
Tu portal de manga y anime.
  #2 (permalink)  
Antiguo 30/07/2006, 03:13
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola meru-kun,

debes asignarle el atributo id al campo de texto para que FF acceda a él mdiante su id; el atributo name no le vale para el método getElementById

saludos
  #3 (permalink)  
Antiguo 30/07/2006, 05:08
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 5 meses
Puntos: 0
De acuerdo

Cita:
Iniciado por tunait
Hola meru-kun,

debes asignarle el atributo id al campo de texto para que FF acceda a él mdiante su id; el atributo name no le vale para el método getElementById

saludos
Me estaba volviendo loco, y todo por ese despiste ... Muchas gracias, creo que ya está esa parte solucionada
__________________
Tu portal de manga y anime.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:12.