Envoi de donnée

Signaler
Messages postés
76
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2007
-
Messages postés
76
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2007
-
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

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
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]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>> 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]
Messages postés
76
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2007

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
Messages postés
76
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2007

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
Messages postés
76
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2007

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