Envoi de donnée

coolboy78 Messages postés 76 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 20 novembre 2007 - 19 nov. 2007 à 15:40
coolboy78 Messages postés 76 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 20 novembre 2007 - 20 nov. 2007 à 08:23
Bonjour,

je debute en ajax, j'aimerai, lorsque mon utilisateur quitte ma page, faire un update dans ma base.
Comment faire ?

j'ai débuté avec ca :

function sorti()
{


var filename = "haut22.php";
var data     = null;


  if(window.XMLHttpRequest) // Firefox  
      xhr_object = new XMLHttpRequest();  
    else if(window.ActiveXObject) // Internet Explorer  
       xhr_object = new ActiveXObject("Microsoft.XMLHTTP");  
    else { // XMLHttpRequest non supporté par le navigateur  
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");  
       return;  
    }  


 xhr_object.open("GET", filename,true);


 xhr_object.onreadystatechange = function() {  
       if(xhr_object.readyState == 4)  
          eval(xhr_object.responseText);  
    }  
  
   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");


xhr_object.send(data);

alert("PARTI ");
}

fichier update: haut22.php
<?
header('Content-type: text/html; charset=iso-8859-1');  
 
include("Conn.php");  // ma classe de connextion à MySQL

$clog= new Conn();
$clog->requete("UPDATE tlog SET datelog='0000-00-00',heurelog='00:00:00' WHERE id='12' ");
  
?>

Mais il ne se passe rien, l'update ne marche pas, Pourtant mon alerte PARTI s'affiche bien !
Comment faire ??? HELP ME !



- Seboo - High Performance

5 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 nov. 2007 à 16:26
Bonjour,

    1° est-ce que en appelant sorti() 
             ailleurs que dans le beforeunload ça marche ou pas ?

    2° ton alert, est fait derrière le send,  ce qui donc ne prouve rien.
             si tu le fais dans xhr_object.onreadystatechange = function() { ?
                 là ça veut dire que le php a répondu !
             mais la page sera probablement déjà fermée, puisque onbeforeunload...

         à propos :  eval(xhr_object.responseText);  et que renvoie le php ?



<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 nov. 2007 à 16:35
>> lorsque mon utilisateur quitte ma page, faire un update dans ma base.
    c'est d'ailleurs rarement une bonne idée...
        _ on n'est pas toujours prévenu du fait que l'utilisateur quitte
        _ s'il fait F5, on quitte aussi par exemple.
    tout dépend donc pour quoi faire ?


<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
coolboy78 Messages postés 76 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 20 novembre 2007
20 nov. 2007 à 07:29
j'ai mis mon alerte dans la boucle xhr_object.onreadystatechange = function , ca marche,

j'ai essayé de mettre la fonction dans un lien, résultat l'alerte se déclenche bien, mais rien ne se passe au niveau de ma requete.

Ai-je fais une erreur de code ?

- Seboo - High Performance
0
coolboy78 Messages postés 76 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 20 novembre 2007
20 nov. 2007 à 08:16
j'ai trouvé mon erreur, c'était un pb positionnement de fichier.


Donc l'update marche nikel maintenant avec le lien.


MAIS, il y a un mais biensur et je m'en doutais, c'est avec le Onbeforeunload='sorti();' . Lorsque je quitte ma page, l'alerte s'affiche bien, mais l'update n'est pas pris en compte. Y-a-til une solution à cela ??



- Seboo - High Performance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coolboy78 Messages postés 76 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 20 novembre 2007
20 nov. 2007 à 08:23
Je ne pensais pas que cela marcherai,  mais en utilisant unload(), ca Marche.
Merci à toi Bultez de m'avoir aidé.

Bonne continuation.

PS :AJAX, c'est fort quand même !

- Seboo - High Performance
0
Rejoignez-nous