Foros del Web » Programando para Internet » PHP »

confirmar antes de eliminar

Estas en el tema de confirmar antes de eliminar en el foro de PHP en Foros del Web. hola tengo un enredo que no puedo desenredar Tengo un formulario con php que al hacer clic en el submit te elimina un registro y ...
  #1 (permalink)  
Antiguo 02/03/2004, 16:00
 
Fecha de Ingreso: febrero-2004
Mensajes: 35
Antigüedad: 13 años, 9 meses
Puntos: 0
confirmar antes de eliminar

hola
tengo un enredo que no puedo desenredar

Tengo un formulario con php que al hacer clic en el submit te elimina un registro y te envía a una pagina de confirmación (elimina.php)
a la vez al hacer clic en el submit sale un dialogo de javascritp donde te avisa que eliminarasel registro y te da la opción de aceptar o cancelar.
Lo que necesito es que al hacer clic en cancelar no haga nada y se quede donde mismo (obviamente)y al dar aceptar ejecute el scritp en php para eliminar el registro y valla a la pagina de confirmación de la eliminacion
lo que me resulto es una mezcla de javascritp con php pero al final dándole a aceptar o cancelar igual se elimina el registro.
aquí adjunto el código:

Código:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_popupMsg(msg) { 
  confirm(msg);
}
//-->
</script>

Código:
<form name="form2" method="post" action="">
                            <input name="id" type="hidden" id="id" value="<?php echo $row_rg_avisos_pub['id']; ?>">
                            <input name="Submit" type="image" onClick="MM_popupMsg('Estas a punto de eliminar un Aviso')" value="Enviar" src="imagenes/eliminar.gif" alt="Eliminar Aviso" align="middle" width="14" height="13">                            
</form>
Código PHP:
if ((isset($_POST['id'])) && ($_POST['id'] != "") && (isset($_POST['id']))) {
  
$deleteSQL sprintf("DELETE FROM avisos WHERE id=%s",
                       
GetSQLValueString($_POST['id'], "int"));

  
mysql_select_db($database_etic$etic);
  
$Result1 mysql_query($deleteSQL$etic) or die(mysql_error());

  
$deleteGoTo "eliminado.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$deleteGoTo .= (strpos($deleteGoTo'?')) ? "&" "?";
    
$deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$deleteGoTo));

nota de javascritp no se mucho y de php un poco mas que eso.
agradecido
  #2 (permalink)  
Antiguo 02/03/2004, 17:02
 
Fecha de Ingreso: febrero-2004
Mensajes: 35
Antigüedad: 13 años, 9 meses
Puntos: 0
Solo fue necesario modificar el codigo javascritps

Código:
<script language="JavaScript" type="text/JavaScript">
<!--
function ConfirmMsg(msg) { 
  document.MM_returnValue = confirm(msg);
}
//-->
</script>

y en el submit:

Código:
<input name="Submit" type="image" onClick="ConfirmMsg('¿Estas a punto de eliminar una publicación?');return document.MM_returnValue" value="Enviar" src="imagenes/eliminar.gif" alt="Eliminar Aviso" align="middle" width="14" height="13">
De esa manera solo se ejecuta el codigo php cuando doy en aceptar

pero ahora tengo otra pregunta....
  #3 (permalink)  
Antiguo 02/03/2004, 17:20
 
Fecha de Ingreso: febrero-2004
Mensajes: 35
Antigüedad: 13 años, 9 meses
Puntos: 0
Información

Si en el formulario de eliminación en vez de un boton coloco una casilla de verificacion que apareceria en cada registro de la consulta para una eliminación multiple, deberia hacer una array en mi variable de formulario. osea:

Código:
<input name="id[]" type="checkbox"  value="<?php echo $row_rg_avisos_pub['id']; ?>">
de esa manera enviaria una array para eliminar multiples registros.
Si todo esta bien hasta ahi, ¿como recupero las variables y le digo este script que me borre todos los registros seleccionados?

Código PHP:
if ((isset($_POST['id'])) && ($_POST['id'] != "") && (isset($_POST['id']))) {
  
$deleteSQL sprintf("DELETE FROM avisos WHERE id=%s",
                       
GetSQLValueString($_POST['id'], "int"));

  
mysql_select_db($database_etic$etic);
  
$Result1 mysql_query($deleteSQL$etic) or die(mysql_error());

  
$deleteGoTo "eliminado.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$deleteGoTo .= (strpos($deleteGoTo'?')) ? "&" "?";
    
$deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$deleteGoTo));

agradecido nuevamente y esperando aprender para poder luego tb responder...
  #4 (permalink)  
Antiguo 02/03/2004, 20:09
 
Fecha de Ingreso: enero-2004
Mensajes: 144
Antigüedad: 13 años, 10 meses
Puntos: 0
tu problema esta en el javaScript parece

Le falta el return.

Prueba con esto, creo q hace lo que quieres, chao

Avisame si te funciona

Código PHP:
<form action="hola.php">
<
input type=submit onclick="javascript:return confirm('hola')">
</
form
  #5 (permalink)  
Antiguo 02/03/2004, 20:26
 
Fecha de Ingreso: febrero-2004
Mensajes: 35
Antigüedad: 13 años, 9 meses
Puntos: 0
No, si eso ya esta listo, lo que sucede ahora es que quiero que ese script php en vez de eliminar un registro elimine varios(dependiendo de los que esten seleccionados) y nose como rescatar todas las variables...¿alguien sabe?
  #6 (permalink)  
Antiguo 02/03/2004, 22:01
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 14 años, 5 meses
Puntos: 2
Revisa las Faqs hay un buen ejemplo de como eliminar varios registros con un checkbox
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
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 13:19.