logo El diario de Pepe Molina (Caricatos)

yo

Después de integrar un sistema para editar y borrar mensajes en nuestro libro de visitas nos encontramos en la necesidad de evitar cambiar de página por cada nueva modificación.


Última caricatura

IV Asamblea de la AEC: IV Asamblea General de la Asociación Española de Caricaturistas

IV Asamblea de la AEC

RSS de las imágenes: rss


La Cita

El otoño es una segunda primavera, donde cada hoja es una flor

Albert Camus, escritor y filósofo francés (1913-1960).


En esta zona están las páginas personales del autor.


Mis clientes ahora también son mis amigos (aunque les cobre).


En Mis amigos Informáticos hay una pequeña colección de páginas de colegas webmasters..


En Mis amigos artistas podemos encontrar artistas de cualquier índole (dibujantes, pintores, escritores...)


Las recomendaciones que proponemos son de índole variada.


Aquí un cajón de sastre de enlaces.


Nos referencian desde sitios de toda índole.


Puede contribuir a mantener esta página con su donativo.


botón pay-pal

Formularios y Ajax

emoticón de Caricatos Publicado el día 01 de agosto de 2012
id=92; categorías: Vicisitudes de un Webmaster, Programación

Después de integrar un sistema para editar y borrar mensajes en nuestro libro de visitas nos encontramos en la necesidad de evitar cambiar de página por cada nueva modificación.

Inicialmente teníamos una advertencia antes de enviar las modificaciones, pero no hacíamos nada más que cancelar el envío según la respuesta:

function modificar(que)	{
	acto = (acto_form == 0) ? "borrar":"modificar";
	sitio = que.id.substr(2);
	return confirm("seguro que quiere " + acto + " el mensaje " + sitio);
}
var acto_form;

Fieles a nuestras recomendaciones, debemos poder navegar perfectamente sin javascript (descativándolo), y así sucede, porque para lo único que lo usábamos era para mostrar una advertencia. Es el momento de añadirle a nuestro sistema inicial las modificaciones necesarias para nuestro objetivo... ¡que tal si españolizamos nuestra alerta!:

return confirmar(que);

Nos queda el tratamiento con Ajax...

Confirmación y ejecución

La misma confirmación ahora debemos condicionarla, y en todo caso cancelar el evento de envío (submit). Ahora las pocas líneas de nuestro sistema de confirmación con la modificación mencionada las moveremos a la nueva función:

function confirmar(que)	{
	acto = (acto_form == 0) ? "borrar":"modificar";
	sitio = que.id.substr(2);
	if (confirm("seguro que quiere " + acto + " el mensaje " + sitio))	{
		params = ["acto=" + acto];
		params.push("sitio=" + sitio);
		if (acto == "modificar")	{
			activo = (que.activo.checked) ? "on":"off";
			params.push("activo=" + activo);
			params.push("nombre=" + escape(que.nombre.value));
			params.push("desde=" + escape(que.desde.value));
			params.push("Email=" + escape(que.Email.value));
			params.push("URL=" + escape(que.URL.value));
			params.push("comentario=" + escape(que.comentario.value));
		}
		Ajax = objetoAjax();
		url = que.action;
		Ajax.open("post", url, true);
		Ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		Ajax.onreadystatechange = function()	{
			if	(Ajax.readyState == 4 && Ajax.status == 200) {
				// Aquí procesamos la respuesta Ajax
			}
		}
		Ajax.send(params.join("&"));
	}
	return false;
}

Antes de explicar la "respuesta Ajax" podemos ver que pasamos siempre el sitio (equivale al id[entificador]) y el botón que se ha pulsado; y si se tratase del botón "modificar" pasamos el resto de los datos (innecesarios en el caso de pulsar el botón "borrar").

De la respuesta solo nos interesa que se han recibido los datos, así que simplemente obtenemos el código de color, y según ese valor actualizamos el mensaje. Con el rojo eliminamos el mensaje (en nuestro caso cambiamos su color), y en el servidor generamos una transacción "delete" en la base de datos. El código negro significa que lo hemos desactivado, y mostramos el mensaje con opacidad; y ya sea negro o azul, modificamos el mensaje con los cambios realizados.

Aunque aquí no mostremos el código de la respuesta, siempre será posible consultarlo desde la propia página.

Algunas conclusiones

Podríamos echar en falta un sistema para procesar varios mensajes a la vez, por ejemplo cuando simplemente queremos borrarlos o desactivarlos, pero para esos casos con el sistema actual solamente debemos hacer unas pocas pulsaciones, así que por el momento es innecesario.

Es de destacar que el fichero que procesa cada formulario en el servidor es el mismo que tenemos para ese cometido sin usar Ajax.

Zona de comentarios

Este apunte aún no tiene comentarios.

Evaluación

Valoración de esta página: (apunte.92) valor

Valoración evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar evaluar

Respuesta: Zona de mensajes (proceso de evaluación)

Historial de navegación

Esta página ha sido visitada en 3428 ocasiones


Disponemos de rss sindicar

Y del Mapa del sitio, además del sitemap.xml.


Aquí podemos encontrar los apuntes más visitados.

"Top 10" reemplaza a la sección Últimos apuntes.


Una buena forma de buscar un apunte es a partir de su categoría.


También es posible buscar apuntes por medio de las etiquetas (tags).


Hemos decidido poner al alcance de todos algunos comodines.

Adjuntamos una versión reducida del "buscador interno" que vemos en la lista anterior:

Buscar en apuntes

También estamos recopilando antiguas páginas del sitio.


Desde este recuadro se puede hacer una búsqueda cronológica.


Se puede crear una postal nueva desde el enlace del sector "Otras páginas del dominio", o editar la que sale en el recuadro, pulsando sobre ella..

../diario.imagen.php?id=75&max=300
¡Felix Navidad!
¡Felix Navidad!
enlace a la postal
Copyright © 2002-2018 www.pepemolina.com
RSS rss | Ver Mapa del sitio