| Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS | ||||
| FAQ: Actualizar navegador sin ejecutar POST |
Se muestran 10 comentarios sin revisar
| Santiago Balaguer | 06/9/06 |
| Más facil!! Crea una variable de formulario hidden en el formulario original con el valor: salvar. Luego, cuando envies el formulario, comprueba que esta variable sea igual a esto, si lo es inserta los datos en la BD, cambiale al valor vacio. | |
| Roberto | 06/9/06 |
| ACTUALMENTE, ME PASA ALGO SIMILAR, YO LO HAGO ASI, AUNQUE ESTE EN ASP ESTO ESPERO QUE TE DE UNA IDEA DE COMO HACERLO EN DONDE NECESITES 1.- LA PAGINA ESTA DIVIDIDA EN DOS PARTES CON Y SIN FORM if request.form="" then Muestro Formulario else Inserto en la base de datos Muestro Mensaje OK Vinculo al Inicio end if ASI TE AHORRAS HACER DOS PAGINAS 2.-ASIGNALE UN IDENTIFICADOR A LA BASE DE DATOS COMO UNA CLAVE, Y VALIDA SI ESTA ANTES DE INGRESAR. TE ESCRIBO EL SQL, ASI EN MUCHO SEUDO CODIGO select clave from mi tabla SI ESTA VACIO ESTE RECORDSET, LO AGREGAS insert into mi_tabla (dato1,dato2, etc..) SI EXISTE MANDA UN MENSAJE EN LA HOJA PARTE DEL FORM "Esta informacion ya ha sido capturada" AUNQUE TAMBIEN YA VALIDANDO SI EXISTE, PODRIAS ACTUALIZARLO update mi tabla set columna_1 = dato_nuevo where clave = Clave TODO JUNTO SERIA if request.form="" then Muestro Formulario Else Set rs = select clave from mi tabla if not rs Inserto en la base de datos insert into mi_tabla (dato1,dato2, etc..) Muestro Mensaje OK Then "Esta informacion ya ha sido capturada" end if Vinculo al Inicio end if if request.form="" then Muestro Formulario Else Set rs = select clave from mi tabla if not rs Inserto en la base de datos insert into mi_tabla (dato1,dato2, etc..) Muestro Mensaje OK Then Actualizo update mi tabla set columna_1 = dato_nuevo where clave = Clave Muestro mensaje “Actualizado” end if Vinculo al Inicio end if ESPERO HABERME EXPLICADO :) SI NO NO DUDES EN ESCRIBIR |
|
| mario | 06/9/06 |
| Bueno si tienes un campo llave entu Base de datos lo que puedes hacer es preguntar a la Base de datos si existe este registro i no existe que Inserte y si existe pues no inserta con If then else arreglas lo del mensaje de error de la Base de datos ya lo demas es pura logica | |
| Jorge Molina | 07/9/06 |
| Aunque estoy de acuerdo en que las tres opciones presentadas son buenas creo que la más practica es la primera debido a que al recargar no aparecerá el mensaje de "Desea reenviar la información" y lo que es más importante se prevendrá que el usuario presione en "No" ante este mensaje con lo que saldría una pagina en blanco y el usuario quedaría "colgado" en esta pagina si no sabe usar los botones "Atras" y "Adelante". | |
| Wolfgang Wagner | 08/9/06 |
| Yo suelo utilizar un campo del tipo "hidden" que me controla eso. Y cuando ejecuto sobre la misma pagina el ingreso de los datos del formulario chequeo el parametro utilizado en el "hidden" si coincide el valor o no. Asi evito que el usuario al pulsar el boton "actualizar" del navegador el programa vuelva a introducir los datos. Aparte de usar otros controles como por ejemplo verificar si el campo email ya se encuentra registrado o no. Asi no tengo necesidad de usar una pagina secundaria. Ah! y por supuesto inicializo el valor del dato usado en el campo "hidden" ;) | |
| camilo | 16/10/06 |
| si la clave principal yaexiste 1. Ejecutas la instruccion select * from tabla; 2.La recorres y incrementas el contador en el while 3. si el contador es igual a cero haces el insert sino le dices que hay un error |
|
| Andrés Pepinosa | 10/11/06 |
| Mira genera una variable $mivariable como campo Hidden que lleva la cuenta de la ejecución de la inserción, cuando esa cuenta se superior no ejecuta el query... pasas <input type='Hidden' name='cuenta' value=0> ademas de una variable que se evalue para ejecutar la acción que tú quieres. //Evaluas $cuenta++; if($cuenta>1 && $opcion='Ejecutar') {echo "Error<br>"; } else {$consulta=pg_query([conexion],[sql a ejecutar]); //esto para el cado de postgres } Espero te sirva |
|
| jonas fut | 01/1/07 |
| Tuve el mismo problema, y como estoy empezando no me quedó muy claro qué tan "elegante" podía ser. El mismo problema se me presentó en el caso del libro de visita (taller) de dllo web. Tambien el mismo problema se presenta en el caso de envio de email sobre la web. Lo solucioné haciendo una consulta a base datos. Si el registro ( al actualizar) es el igual al anterior...o alguno de los campos ( como "comentario" por ejemplo) era identico al anterior, no graba por segunda vez |
|
| Luis Caceres | 04/3/08 |
| Como el formulario se llama a si mismo, la idea es validar que el registro no exista y luego grabar. Ahora, si existe, puedes enviar un alert mediante javascript avisando que se está tratando de ingresar nuevamente la información | |
| Javier | 25/3/08 |
| muy facil, en la programacion verifica si el registro se guarda, una ves echo eso con un control if por ejemplo envia un valor para que no pueda volver a hacerlo, ocultando el boton o desabilitandolo. | |