Foros del Web » Programando para Internet » PHP »

Actualizar encuesta antes de abrir popup

Estas en el tema de Actualizar encuesta antes de abrir popup en el foro de PHP en Foros del Web. Hola, antes que nada gracias desde ya!!! Siguiendo la FAQ que hay en este foro para realizar una encuesta me encontrado con un problemilla que ...
  #1 (permalink)  
Antiguo 18/09/2003, 15:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Actualizar encuesta antes de abrir popup

Hola, antes que nada gracias desde ya!!!

Siguiendo la FAQ que hay en este foro para realizar una encuesta me encontrado con un problemilla que no se como solucionar..., la cuestion es que el archivo encuesta.php se envia el form de la encuesta a si mismo con $_SERVER['PHP_SELF']; y con un evento onClick abre un popup con la pagina resultados.php que contiene los resultados de las votaciones extraídos de la tabla de la encuesta.., el problema es que claro muchas veces abre antes el popup que procesa el contenido del form que actualiza la tabla que contiene los campos de la encuesta..., con lo que el ultimo voto enviado muchas veces no aparece contabilizado, si lo enviase mediante un target=_blank directamente a resultados.php estaría solucionado el problema..., pero la cuestión es que quiero que resultados.php se abra en un popup con el ultimo voto enviado al enviar el formulario de la encuesta.

¿Como podría hacer eso?

A continuación pego el código porque pa mí que no me explicao mu bien... xdd


Código PHP:
// encuesta.php

<? 
$conexion 
mysql_connect ("localhost","usuario","password");
$base "encuestas"
mysql_select_db($base$conexion); 
$sqlupdate "UPDATE encuestaaec SET Valor$voto = Valor$voto+1, Total = Total+1"
mysql_query($sqlupdate$conexion); 
$sql "SELECT * FROM encuestaaec ORDER BY Idencuesta desc LIMIT 1"
$resultados mysql_query($sql$conexion); 
$row mysql_fetch_array($resultados); 
?> 
<FORM name="form1" method="post" action="$_SERVER['PHP_SELF'];">  
<TABLE width="200" bgcolor="#EFEFEF" border="1" bordercolor="#003366" align="center" cellpadding="3" cellspacing="1" class="forumline"> 
<TR bgcolor="#CCCCCC" valign="middle">
<TD height="25" colspan="2"> 
        <DIV align="center"><FONT face="arial" size="1"><STRONG> 
          <?=$row['Pregunta'];?>
          </STRONG></FONT></DIV> 
</TD> 
</TR> 
<TR> 
<TD width="150">
<DIV align="left"><FONT face="arial" size="1"><STRONG>  
<?=$row['Respuesta1'];?>
</STRONG></FONT></DIV>  
</TD> 
<TD width="50" align="center">
<INPUT type="radio" name="voto" value="1">
</TD> 
</TR> 
<TR> 
<TD>
<DIV align="left"><FONT face="arial" size="1"><STRONG> 
<?=$row['Respuesta2'];?>
</STRONG></FONT></DIV> 
</TD> 
<TD align="center"><INPUT type="radio" name="voto" value="2"></TD> 
</TR> 
<TR> 
<TD>
<DIV align="left"><FONT face="arial" size="1"><STRONG> 
<?=$row['Respuesta3'];?>
</STRONG></FONT></DIV> 
</TD> 
<TD align="center">
<INPUT type="radio" name="voto" value="3">
</TD> 
</TR>
<TR> 
<TD>
<DIV align="left"><FONT face="arial" size="1"><STRONG> 
<?=$row['Respuesta4'];?>
</STRONG></FONT></DIV> 
</TD> 
<TD align="center">
<INPUT type="radio" name="voto" value="4">
</TD> 
</TR> 
<TR bgcolor="#CCCCCC" align="center"> 
<TD height="35" colspan="2">
<INPUT type="submit" class="post" name="Submit" value="Votar"  style="background-color:#efefef;font-family:arial;font-size:7pt;font-weight:bold" onClick=window.open("resultados.php","popup","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=550,height=225")>
</TD> 
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>



// Resultados.php
<? 
$servidor 
"localhost"
$usuario "usuario"
$password "password"
$base "encuestas"
$conexion mysql_connect ($servidor,$usuario,$password); 
mysql_select_db($base$conexion); 
$sql "SELECT * FROM encuestaaec ORDER BY idencuesta desc LIMIT 1"
$resultados mysql_query($sql,$conexion); 
$row mysql_fetch_array($resultados); 
$res1round ($row['Valor1']*100/$row['Total'],2);
$res2round ($row['Valor2']*100/$row['Total'],2); 
$res3round ($row['Valor3']*100/$row['Total'],2); 
$res4round ($row['Valor4']*100/$row['Total'],2);
?>
<TABLE align="center" width="500" border="0" bordercolor="#003366">
<TR align="center">
<TD>
Resultados parciales de la Encuesta
</TD>
</TR>
<TR align="center">
<TD>
<FONT face="arial" size="2"><STRONG>
<?=$row['Pregunta']; ?>
</STRONG></FONT>
</TD>
</TR>
</TABLE>
<TABLE width="500" border="1" align="center" cellpadding="2" cellspacing="1" bordercolor="#000066" bgcolor="#EFEFEF">
  <TR bgcolor="#CCCCCC"> 
<TD height="25" width="200"><?=$row['Respuesta1']; ?></TD> 
<TD width="*"><IMG height="15" width="<?=$row["Valor1"]*100/$row["Total"]?>%" src="barra.gif"></TD> 
<TD align="center" width="70"><? echo $res1."%";?></TD> 
</TR> 
<TR> 
<TD height="25" width="200" ><?=$row['Respuesta2']; ?></TD> 
<TD width="*"><IMG height="15" width="<?=$row["Valor2"]*100/$row["Total"]?>%" src="barra1.gif"></TD> 
<TD align="center" width="70"><? echo $res2."%";?> </TD> 
</TR> 
<TR bgcolor="#CCCCCC"> 
<TD height="25" width="200"><?=$row['Respuesta3']; ?></TD> 
<TD width="*"><IMG height="15" width="<?=$row["Valor3"]*100/$row["Total"]?>%" src="barra2.gif"></TD> 
<TD align="center" width="70"><? echo $res3."%";?> </TD> 
</TR>
<TR> 
<TD height="25" width="200"><?=$row['Respuesta4']; ?></TD> 
<TD width="*"><IMG height="15" width="<?=$row["Valor4"]*100/$row["Total"]?>%" src="barra3.gif"></TD> 
<TD align="center" width="70"><? echo $res4."%";?> </TD> 
</TR> 
 </TABLE>
 <?
 
echo "<br><div align='center'>Número total de votos ".$row['Total']."</div>";
 
?> 
<FORM name="form1" method="post" action=""> 
<DIV align="center"> 
<INPUT type="submit" name="Submit" value="Cerrar Ventana" style="background-color:#efefef;font-family:arial;font-size:7pt;font-weight:bold" onClick="window.close();"> 
</DIV> 
</FORM> 
</BODY> 
</HTML>

Perdón si he pasteao mucho código es pa explicarme mejor...

Un saludo
  #2 (permalink)  
Antiguo 18/09/2003, 16:31
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Reflexionando..., me dao cuenta que poniendo un simple sleep(2); al principio del script resultados.php he solucionado el problemilla.


Un saludo.
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 12:44.