Ajax + php mysql actualisation automatique

Fermé
delmouly - 17 déc. 2010 à 20:13
 Anonymous - 6 janv. 2012 à 13:42
Bonjour,
je cherche a se que les notifications de mon site (recherché dans ma base de donnée par une requete php sql) soit afficher en live
pour cela je me suis tourné vers l'ajax et j'ai trouvé ce code.
J'ai essayé de l'adapté mais il ne fait pas exactement a se a quoi je m'attend.

voila le code de ma page ou je veux que le marcheoupas soit afficher

<script type="text/javascript">
// retourne un objet xmlHttpRequest.
// méthode compatible entre tous les navigateurs (IE/Firefox/Opera)
function getXMLHTTP()
{
var xhr=null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject)// Internet Explorer
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e1)
{
xhr = null;
}
}
}
else // XMLHttpRequest non supporté par le navigateur
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
}
return xhr;
}

var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
var _adresseRecherche = "requetenotification.php" //l'adresse à interroger

function getData()
{
if(_xmlHttp&&_xmlHttp.readyState!=0)
{
_xmlHttp.abort()
}
_xmlHttp=getXMLHTTP();
if(_xmlHttp)
{
//appel à l'url distante
_xmlHttp.open("POST",_adresseRecherche,true);
_xmlHttp.onreadystatechange=function()
{
if(_xmlHttp.readyState==4&&_xmlHttp.responseText)
{
document.getElementById( 'block' ).innerHTML = _xmlHttp.responseText ;
}
};
// envoi de la requête
_xmlHttp.send(null)
}
}
window.onload = getData();
</script>

voila ma page requetenotification

<?php $donnees = 'marcheoupas ?> (c'est tout)

Comment faire pour qu'il m'affiche le contenu de marcheoupas dans ma premiere page ?
J'ai essayé echo $donnees mais sa ne marche pas.

Help svp !
Je vous en suplie de m'aidez, sa fait plusieurs moi que je cherche a se que mon site marche en ajax



A voir également:

5 réponses

Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
Modifié par Doctor C le 17/12/2010 à 21:48
Dans ton javascript, le code _xmlHttp.responseText retourne ce que ton code php affiche (donc, tout ce qui est produit par des fonctions comme echo). Ton fichier php devrait donc ressembler à ceci:

<?php  
$donnees = 'marcheoupas'; 
echo $donnees;  
?>  

Ensuite, pour vérifier si ton code javascript fonctionne, tu pourrais placer un alert dans ta fonction onreadystatechange. Ça te permettrait de t'assurer que l'exécution de ton code se rend au moins là.

_xmlHttp.onreadystatechange=function()  
{  
  alert("On entre dans la fonction onreadystatechange"); 
  if(_xmlHttp.readyState==4&&_xmlHttp.responseText)  
  { 
    alert("Etat correct, on procede a la mise a jour.");  
    document.getElementById( 'block' ).innerHTML = _xmlHttp.responseText ;  
  }  
};


Sinon, vite comme ça, je ne vois rien d'autre d'anormal.

J'attends de tes nouvelles!
Bonne chance

Echo "Lima Mike Alfa";
0
sa me charge bien se que je demande mais moi se que je chercherai c'est d'inclure un genre de set timout pour qu'il me le regarde genre toute les 5 seconde.

Il faut rajouter quoi au script ?
0
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
17 déc. 2010 à 22:04
Une bonne alternative est aussi d'utiliser des librairies déjà toutes faites proprement ce qui simplifie grandement la tâche.

Par exemple, JQuery et Prototype JS offrent de belles fonction/classes pour gérer l'AJAX.

Prototype JS: http://prototypejs.org/
JQuery : https://jquery.com/

Un exemple de Prototype JS (mon préféré de par sa simplicité) une fois le fichier js inclus dans la page, il suffit de taper une ligne de ce genre afin de faire du AJAX:

new Ajax.Request('/url_de_ton_script.php',
  {
    method:'get',
    onSuccess: function(transport){
      var reponse = transport.responseText;
      alert("Succes! \n\n" + response);
    },
    onFailure: function(){ alert('Erreur') }
  });


Si beau, si simple, si élégant!
0
C'est beau mais incomplet pour comprendre
0
+1
0
donc je telecharge jquery
j'adapte le code que tu ma donné pour mapage.php

et sa s'actualisera tout seul et j'aurais mes notification en live ?
0

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

Posez votre question
dsl pour le double post, mais tu peut me donner le code fait stp
j'ai deja chargé la bibliotheque jquery

je ne connai pas le javascript:/
0