Foros del Web » Programando para Internet » PHP »

Ayuda: Como refrescar pagina luego de hacer DELETE

Estas en el tema de Ayuda: Como refrescar pagina luego de hacer DELETE en el foro de PHP en Foros del Web. Buenas a todos, ante nada gracias por toda la ayuda brindada anteriormente. Bien, lo que pasa ahora es que tengo el siguiente problema. En mi ...
  #1 (permalink)  
Antiguo 15/12/2010, 16:06
 
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 18 años, 1 mes
Puntos: 0
Ayuda: Como refrescar pagina luego de hacer DELETE

Buenas a todos, ante nada gracias por toda la ayuda brindada anteriormente.

Bien, lo que pasa ahora es que tengo el siguiente problema. En mi pagina tengo una opcion para visualizar "cobros", y le hice un pequeño y simle entorno grafico con un boton llamado eliminar cobro, que me dirije a un archivo llamado elimiar.php(donde esta delete * ..etc). El boton y su funcion de eliminar trabajan bien peor lo que sucede es que la pagina sigue mostrando el cobro, es decir aunque la base de datos se actualiza y si elimina la filla del cobro, la pagina aun lo muestra.

Ah la estructura de la pagina es asi:

Index(Donde se listan los cobros) -> Edicion del cobro(luego de seleccionar el cobro en el index) -> y es en esta pagina de edicion donde llamo a "eliminar.php" haciendo clic en un boton para borrar mi cobro.

¿Que alternativas me dan para solucionar este problema?

Gracias.

Pienso que deberia re llamar a la pagina de edicion de cobros luego de llevar a cabo eliminar, pero deberia portar todos los datos que pasaron cuando me traslade de index a edicion.

Soy novato, espero comprendan y me puedan ayudar.
  #2 (permalink)  
Antiguo 15/12/2010, 17:03
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 4 meses
Puntos: 26
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

mejor pon el codigo que tienes hecho.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #3 (permalink)  
Antiguo 15/12/2010, 18:13
 
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

Ok, bueno lo que pasa es que el codigo es algo grande, y no quiero postear demasiados caracteres porque derepente perjudicaria el foro.

Index del cobro:
Código:
  <br>
			  <div id="frmBusqueda">
				<form id="formulario" name="formulario" method="post" action="frame_cobros.php" target="frame_cobros">
					<table class="fuente8" width="98%" cellspacing=0 cellpadding=3 border=0>
						<tr>
							<td width="15%">Fecha de cobro</td>
						    <td width="35%"><input id="fechacobro" type="text" class="cajaPequena" NAME="fechacobro" maxlength="10" value="<? echo $hoy?>" readonly><img src="../img/calendario.png" name="Image1" id="Image1" width="16" height="16" border="0" id="Image1" onMouseOver="this.style.cursor='pointer'" title="Calendario">
        <script type="text/javascript">
					Calendar.setup(
					  {
					inputField : "fechacobro",
					ifFormat   : "%d/%m/%Y",
					button     : "Image1"
					  }
					);
		</script></td>
					        <td width="50%" rowspan="14" align="left" valign="top"><ul id="lista-errores"></ul></td>
						</tr>
						<tr>
							<td width="15%">Importe****************************************S/.</td>
						    <td width="35%"><input id="Rimporte" type="text" class="cajaPequena" NAME="Rimporte" value="<? echo number_format($pendiente,2,".","")?>" maxlength="12"></td>
					        <td width="50%" rowspan="14" align="left" valign="top"></td>
						</tr>	
						<?
						$query_fp="SELECT * FROM formapago WHERE borrado=0 ORDER BY nombrefp ASC";
						$res_fp=mysql_query($query_fp);
						$contador=0; ?>
						<tr>
							<td>Forma de pago</td>
						    <td><select id="AcboFP" name="AcboFP" class="comboGrande">
								<?php
								while ($contador < mysql_num_rows($res_fp)) { 
									if (mysql_result($res_fp,$contador,"codformapago") ==1) { ?>
								<option value="<?php echo mysql_result($res_fp,$contador,"codformapago")?>" selected="selected"><?php echo mysql_result($res_fp,$contador,"nombrefp")?></option> 
								<? } else { ?>
								<option value="<?php echo mysql_result($res_fp,$contador,"codformapago")?>"><?php echo mysql_result($res_fp,$contador,"nombrefp")?></option>
								<? 
									}
									$contador++;
								} ?>				
								</select></td>
			            </tr>
						<tr>
							<td width="15%">Num. Documento</td>
						    <td width="35%"><input id="anumdocumento" type="text" class="cajaMedia2" NAME="anumdocumento" maxlength="30"></td>
					        <td width="50%" rowspan="14" align="left" valign="top"></td>
						</tr>	
						<tr>
							<td width="15%">Observaciones</td>
						    <td width="35%"><textarea rows="5" cols="30" class="areaTexto" name="observaciones" id="observaciones"></textarea></td>
					        <td width="40%" rowspan="14" align="left" valign="top"></td>
						</tr>																	
					</table>
			  </div>
				<div id="botonBusqueda">
					<input type="hidden" name="id" id="id">
					<input type="hidden" name="accion" id="accion" value="insertar">
					<input type="hidden" name="codcliente" id="codcliente" value="<? echo $codcliente?>">
					<input type="hidden" name="codfactura" id="codfactura" value="<? echo $codfactura?>">
					<img src="../img/botonaceptar.jpg" width="85" height="22" onClick="javascript:validar(formulario,true);" border="1" onMouseOver="style.cursor=cursor">
					<img src="../img/botoncancelar.jpg" width="85" height="22" onClick="cancelar()" border="1" onMouseOver="style.cursor=cursor">
			  </div>
			  </form>
			  <br>
			  <div id="frmBusqueda">
			  <div id="cabeceraResultado2" class="header">
					relacion de COBROS </div>
				<div id="frmResultado2">
				<table class="fuente8" width="100%" cellspacing=0 cellpadding=3 border=0 ID="Table1">
						<tr class="cabeceraTabla">
							<td width="10%">ITEM</td>
							<td width="12%">FECHA</td>
							<td width="12%">IMPORTE </td>							
							<td width="20%">FORMA PAGO</td>
							<td width="20%">N. DOCUMENTO</td>
							<td width="15%">FECHA VTO.</td>
							<td width="5%">OBV.</td>
							<td width="6%">&nbsp;</td>
						</tr>
				</table>
				</div>
					<div id="lineaResultado">
					<iframe width="100%" height="250" id="frame_cobros" name="frame_cobros" frameborder="0" src="frame_cobros.php?accion=ver&codfactura=<? echo $codfactura?>">
						<ilayer width="100%" height="250" id="frame_cobros" name="frame_cobros"></ilayer>
					</iframe>
					<iframe id="frame_datos" name="frame_datos" width="0" height="0" frameborder="0">
					<ilayer width="0" height="0" id="frame_datos" name="frame_datos"></ilayer>
					</iframe>
				</div>
frame a donde va el cobro y de donde quiero poder eliminarlo si el usuario agrega un cobro errado.

Código:
.../estilos/estilos.css" type="text/css" rel="stylesheet">
		<script language="javascript">

		function abreVentana(observaciones){
			miPopup = window.open("ver_observaciones.php?observaciones="+observaciones,"miwin","width=380,height=240,scrollbars=yes");
			miPopup.focus();
		}
		
		function eliminar(codfactura,idmov,fechacobro,importe){			
			miPopup = window.open("eliminar.php?codfactura="+codfactura+"&idmov="+idmov+"&fechacobro="+fechacobro+"&importe="+importe,"frame_datos","width=380,height=240,scrollbars=yes");
		}		
		function ver_cobros(codfactura) {
			parent.location.href="ver_cobros.php?codfactura=" + codfactura + "&cadena_busqueda=<? echo $cadena_busqueda?>";
		}
		
		</script>
	</head>
	<body>	
			<div id="zonaContenido">
			<div align="center">
			<table class="fuente8" width="100%" cellspacing=0 cellpadding=3 border=0 ID="Table1">
			<form name="form1" id="form1">		
				<?	if ($filas > 0) { ?>
						<? $sel_resultado="SELECT * FROM facturas,cobros,clientes,formapago WHERE cobros.codfactura='$codfactura' AND cobros.codfactura=facturas.codfactura AND cobros.codcliente=clientes.codcliente AND cobros.codformapago=formapago.codformapago ORDER BY cobros.id DESC";
						   $res_resultado=mysql_query($sel_resultado);
						   $contador=0;				   
						   while ($contador < mysql_num_rows($res_resultado)) { 
								if ($contador % 2) { $fondolinea="itemParTabla"; } else { $fondolinea="itemImparTabla"; }?>
						<tr class="<?php echo $fondolinea?>">
							<td class="aCentro" width="10%"><? echo $contador+1;?></td>
							<td width="12%"><div align="center"><? echo implota(mysql_result($res_resultado,$contador,"fechacobro"))?></div></td>
							<td width="12%"><div align="center"><? echo number_format(mysql_result($res_resultado,$contador,"importe"),2,",",".")?></div></td>							
							<td width="20%"><div align="center"><? echo mysql_result($res_resultado,$contador,"nombrefp")?></div></td>
							<td class="aDerecha" width="20%"><div align="center"><? echo mysql_result($res_resultado,$contador,"numdocumento")?></div></td>
							<td class="aDerecha" width="15%"><div align="center"><? echo implota(mysql_result($res_resultado,$contador,"fechavencimiento"))?></div></td>
							<td width="5%"><div align="center"><a href="#"><img src="http://www.forosdelweb.com/f18/img/observaciones.png" width="16" height="16" border="0" onClick="abreVentana('<?php echo mysql_result($res_resultado,$contador,"observaciones")?>')" title="Ver Observaciones"></a></div></td>
							<td width="5%"><div align="center"><a href="#"><img src="http://www.forosdelweb.com/f18/img/eliminar.png" width="16" height="16" border="0" onClick="eliminar('<?php echo mysql_result($res_resultado,$contador,"codfactura")?>',<?php echo mysql_result($res_resultado,$contador,"id")?>,<?php echo mysql_result($res_resultado,$contador,"fechacobro")?>,<?php echo mysql_result($res_resultado,$contador,"importe")?>)" title="Eliminar"></a></div></td>
						</tr>
						<? $contador++;
							}
						?>			
					</table>
					<? } else { ?>
					<table class="fuente8" width="100%" cellspacing=0 cellpadding=3 border=0>
						<tr>
							<td width="100%" class="mensaje"><?php echo "Todav&iacute;a no se ha producido ning&uacute;n cobro de esta factura.";?></td>
					    </tr>
					</table>					
					<? } ?>	
					</form>				
				</div>
				<iframe id="frame_datos" name="frame_datos" width="0" height="0" frameborder="0">
					<ilayer width="0" height="0" id="frame_datos" name="frame_datos"></ilayer>
					</iframe>
				</div>
		  </div>			
	</body>
</html>
Codigo del archivo php para borrar el cobro:

Código:
<? 
include ("../conectar.php"); 
include ("../funciones/fechas.php");

	$idmov=$_GET["idmov"];
	$codfactura=$_GET["codfactura"];
	$fechacobro=$_GET["fechacobro"];
	$importe=$_GET["importe"];
	$importe="-".$importe;
	$fecha=explota($fechacobro);

	$act_factura="DELETE FROM cobros WHERE id='$idmov' AND codfactura='$codfactura'";
	$rs_act=mysql_query($act_factura);
	
	//1 compra
	//2 venta

	$sel_libro="INSERT INTO librodiario (id,fecha,tipodocumento,coddocumento,codcomercial,codformapago,numpago,total) VALUES 
	('','$fecha','2','$codfactura','','','','$importe')";
	$rs_libro=mysql_query($sel_libro);

?>
Bueno, ahi esta, espero me puedan ayudar por favor, si necesitan que suba los archivos para que los descarguen y los vean, me avisan.

Gracias, espero que me puedan dar una mano.

Última edición por phpSEEK; 15/12/2010 a las 18:24
  #4 (permalink)  
Antiguo 15/12/2010, 18:29
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

pues cuando eliminas el cobro no veo que luego de hacer la eliminacion redirijas de nuevo a tu pagina que es lo que deberias de estar haciendo, sino si lo quieres hacer de manera asincronica pudieras utilizar ajax para eso saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 16/12/2010, 00:15
 
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

Me podrias dar una mano con eso ¿donde tendria que hacer la redireccion?

Gracias.
  #6 (permalink)  
Antiguo 16/12/2010, 12:02
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 8 meses
Puntos: 44
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

<?
include ("../conectar.php");
include ("../funciones/fechas.php");

$idmov=$_GET["idmov"];
$codfactura=$_GET["codfactura"];
$fechacobro=$_GET["fechacobro"];
$importe=$_GET["importe"];
$importe="-".$importe;
$fecha=explota($fechacobro);

$act_factura="DELETE FROM cobros WHERE id='$idmov' AND codfactura='$codfactura'";
$rs_act=mysql_query($act_factura);

//1 compra
//2 venta

$sel_libro="INSERT INTO librodiario (id,fecha,tipodocumento,coddocumento,codcomercial, codformapago,numpago,total) VALUES
('','$fecha','2','$codfactura','','','','$importe' )";
$rs_libro=mysql_query($sel_libro);

Cita:
headers("Location:tu_archivo.php");
?>
  #7 (permalink)  
Antiguo 16/12/2010, 19:17
 
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

Hola, gracias por la respuesta, pero ya habia intentado eso y no me redirecciona. Tambien intente otra solucion con javascript que encontre en el foro y nada. ¿Sera porque esta en un frame?

Espero respuesta, saludos.
  #8 (permalink)  
Antiguo 16/12/2010, 19:21
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 8 meses
Puntos: 44
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

xq no pruebas poner algo asi nada mas para verificar que te haga el redireccionamiento.
primero crea un archivo nuevo y metelo en el frame donde debe de ir tu pagina

Cita:
<?php header("location:http://www.forosdelweb.com"); ?>
  #9 (permalink)  
Antiguo 16/12/2010, 19:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

Ok gracias por el apoyo, mira modifique mi archivo para probar pero antes cree un archivo llamado prueba.php conteniendo el codigo que me diste. Enlaze asi:

<td width="5%"><div align="center"><a href="prueba.php"><img src="http://www.forosdelweb.com/f18/img/eliminar.png" width="16" height="16" border="0" title="Eliminar"></a></div></td>

Esto dentro del iframe, donde esta eliminar.

Al hacer clic en eliminar el resultado es que no hubo redireccion y obtuve en el frame este texto:



Es extraño. ¿Que crees que este pasando?

Muchas gracias de antemano.
  #10 (permalink)  
Antiguo 16/12/2010, 21:04
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Respuesta: Ayuda: Como refrescar pagina luego de hacer DELETE

Bien, una estructura algo anticuada usando frames y sin usar ajax. Pero, todo tiene solución. Según he entendido basta con que toda la página se recargue para que el problema esté solucionado. Correcto, solamente te queda javascript:

Código PHP:
<?php 
  
if ($rs_libro) {
?>
    <script type="text/javascript">
         window.top.location = 'index.php';
    </script>
<?ph 
  
}

?>
Asumo que el archivo principal es index.html, sino es así solo cámbialo. Lo importante aquí es que desde el frame o iframe se llama a la recarga de toda la página, no solo del iframe o frame donde se encuentre. Esto sería imposible sólo con PHP. Suerte!

Etiquetas: delete, refrescar
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 17:45.