Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2014, 08:37
wanamingo2
 
Fecha de Ingreso: octubre-2010
Mensajes: 31
Antigüedad: 14 años, 6 meses
Puntos: 1
Actualizar la base de datos antes de que se cierre la pagina

Quiero dar de baja de la base de datos SQL, cuando un usuario abandona una página.

He creado un script jquery-Ajax, que aprovecha el evento "beforeunload" para enviar datos antes de que la pagina se cierra...

Index.php

<?php
$roomx='myroom';
$number=2;
$user='Anonimous';
?>

<html>
<head>
<title>Testing action on unload</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>
</head>
<body>
<p>Ajax Response</p>

</body>
<script type="text/javascript">
$(document).ready(function() {
$(window).one('beforeunload',function(event) {
event.preventDefault();

$.ajax({
url: 'logout.php', //put your url here
type: 'GET',
async: true,
data: 'roomx=justin&user=angel',
error: function(xhr,status,e) { console.log('error'); },
success: function(data, textStatus, xhr) { $('#resp').html(xhr.responseText);},
complete: function(xhr, status) {alert('Now closing window'); //put your popup here

$(window).unload();
}
});
});
});
</script>
</html>

Envia los datos a la pagina logout.php que los procesa:

<?php
if($_GET)
{
$roomx=$_GET['roomx'];
$user=$_GET['user'];
$age=$_GET['age'];

echo "room : ".$roomx;


// CONECTAMOS A LA BASE DE DATOS Y ANADIR LOS VIEWERS QUE VAN ENTRANDO
$conexion=mysqli_connect("localhost","root","elzor ro","chatinnew");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

//Insertamos el usuario
mysqli_query($conexion,"INSERT INTO uwslv_chatin(room,user_id,username) VALUES ('$roomx',2,'$user')") or die ("Problemas con insert".mysql_error());

//Cerramos base de datos
mysqli_close($conexion);


}
?>


PREGUNTA 1: El código funciona con Mozilla Firefox, pero no con Chromium... ¿alguien sabe por que?
PREGUNTA 2: Alguien tiene idea de cómo eliminar la alerta que aparece en Firefox de dice "Esta seguro de cerrar la pagina...?"

Gracias de antemano por cualquier ayuda