viernes, abril 07, 2006

Confirmando la eliminación de un registro con Javascript

Estoy trabajando en un sistema web administrativo y como todo tiene un aspecto de actualización de registros. Y para hacerlo más consistente y seguro, quise agregar estabilidad del lado del cliente mediante javascript. Gracias a los amigos de PHP-Hispano pude probar algunos métodos. Voy a explicar los métodos expuestos, cuáles fueron los resultados y finalmente cual fue la solución.


Redireccionamiento mediante javascript

Una de las formas que probé, fue utilizar una función javascript que me mostrará un confirm y según la respuesta, me redireccionará al archivo que me permitiera eliminar el registro o sencillamente no hiciera nada.

Aquí tienen el código:

function preguntar(){
eliminar=confirm("¿Desea eliminar este registro?");
if (eliminar)
//Redireccionamos si das a aceptar
window.location.href="delete.php?id=valor";
//pagina web a la que te redirecciona si confirmas la eliminacion
else
//Y aqui pon cualquier cosa que quieras que salga si le diste al boton de cancelar
alert('No se ha podido eliminar el registro...');
}


Y en el enlace va esto:

<.a href="javascript:preguntar()">Eliminar<./a>

Al presionar el botón cancelar todo funcionaba impecable, pero cuando presionaba aceptar aparecían los problemas. No se porque razón al pasar a la página delete.php, la sesión se perdía. Asi que desistí de este método.

Usando onClick y un archivo .js

El otro método que use fue usando la función onClick. Aquí les dejo el código:

function confirmDel() {
var agree=confirm("¿Realmente desea eliminarlo? ");
if (agree) return true ;
else return false ;
}


Y en el enlace:

<.a onclick="confirmDel();" href="delete.php?id=valor">Eliminar<./a>



Este método tampoco me funcionóno porque no importando el botón que presionara, el registro era eliminado.

Usando onClick y confirm en el mismo enlace

Hasta que llego la forma que por lo menos a mi me funcionó. Simplemente coloque el confirm en el mismo onClick. De esa manera cuando presiono sobre el cancelar, no realiza ninguna operación y cuando presiono sobre el aceptar va a delete.php y elimina el registro.

Aquí tienen el código:

<.a onclick="return confirm('¿Desea eliminar este registro?')" href="delete.php?id=valor">Eliminar<./a>

Simple no. Pues bien, espero que les sirva de algo el tips y si tienen sugerencias o cosas que debo corregir sólo posteen.

4 Comentarios:

Anonymous Anónimo dice...

El penúltimo método (el último fallido) al parecer debería ser implementado utilizando una variable global como document, por ejemplo utilizar document.validacion = true; en el archivo .js para luego colocar onClick="confirmDel(); return document.validacion" en la etiqueta que hace la redirección hacia delete.php, así generas un código más limpio y más entendible separando un poco el código javascript de cliente de las rutinas de php del servidor.

4:41 a. m.  
Blogger neo_ric dice...

Gracias por el aporte y la corrección.

3:15 p. m.  
Blogger Gonchalito dice...

�Alguien corrigi�ndolo?... ahora s� que es humano... jajaja xD
Wena wena, no sab�a que ten�a Blog.
Lo invito a mi espacio, es mi segundo lado reflexivo y de comunicaci�n al resto, despu�s de Flog obviamente, que es mi principal "Centro de Operaciones".
Lo agregu� en la plantilla de mi Blog a los favoritos.
Espero estar en los suyos.
Le� m�s abajo sobre su hijo. Me alegro mucho =)
Voy a regalarle un escrito con sentido espiritual, algo que quiero cantarle personalmente a mi hijo cuando nazca, pero que al leerlo s� que usted lo entender� muy bien. Comp�rtalo con su se�ora si quiere ^___^
�Saludos!, y muchas bendiciones.

Gonzalo
Salmo 126, 5

2:44 p. m.  
Blogger neo_ric dice...

Gracias gonzalo por tus palabras. Y bueno sobre el post, en realidad tengo mucho que mejorar, y todas las correcciones y sugerencias son bienvenidas en mi vida.
Saludos

10:55 p. m.  

Publicar un comentario

<< Home