Partage
  • Partager sur Facebook
  • Partager sur Twitter

recharger une requete php en ajax

    14 novembre 2010 à 12:13:47

    Bonjour, je viens sur ce topic demander de l'aide (ne connaissant pas le javascript et l'ajax) pour trouver le code ou le tutoriel expliquant comment recharger une requête php (qui demande par exemple toute les news du site)automatiquement a chaque fois qu'il y'à une nouvelle entreé dans la base de données, comme le page d'accueil de twiter ou facebook par exemple qui s'actualise a chaque nouvelle publication de nos amis.

    Apres plusieurs recherche sur google je sais que cela fait appel a l'ajax mais je n'ai pas trouver de code sur internet le mettant en oeuvre ou le tutoriel l'expliquant.

    J'espere donc trouvé un connaisseur de l'ajax qui m'expliquerait comment faire ou me dirigerait vers un tutoriel qui à la clé me permettera de faire se que je veux

    Voila Merci :)

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      14 novembre 2010 à 12:16:43

      Je ne suis pas expert, donc pour l'Ajax je ne saurais te donner un code précis.

      Mais si tu veux quelque chose de simple, regarde du côté de jQuery, il y a des fonctions Ajax qui font ça très bien ;-)
      • Partager sur Facebook
      • Partager sur Twitter
        14 novembre 2010 à 12:27:13

        Alors tu ne peut pas détecter si il y a eu une nouvel entré dans la BDD. Il y a 2 moyen :
        - Ou tu fait apelle a ta fonction Ajax toute les 5 a 10 seconde et tu affiche le résultat (Plutôt consommateur pour le client et ton serveur...)
        - Ou tu fait une petite requête Ajax (toute les 5 seconde) ver un autre page php qui détecte si il y a eu de nouvel entrée, et si oui alors tu fait une grosse requête pour recevoir les dernière entrée.

        Voila tu veut un script Ajax tout fait et simple ?

        PS: ne passe surtout pas par jQuery pour juste un truc Ajax, sa ne vaut pas le coup de charger un truc aussi gros pour sa...
        • Partager sur Facebook
        • Partager sur Twitter
          14 novembre 2010 à 12:30:11

          Bah sache que si on me file le script ajax tout fait sa ne me derange pas :p

          Le moin consommateur si tu y arrive car mon site fonctionne deja avec bcp de requete..
          • Partager sur Facebook
          • Partager sur Twitter
            14 novembre 2010 à 12:32:05

            Ba sa dépend tu veut que l'actualisation se face toute les combien de temps ?

            PS: Facebook, il y a un bouton pour afficher les dernière requête, c pas auto...
            • Partager sur Facebook
            • Partager sur Twitter
              14 novembre 2010 à 12:34:36

              bah enfete regarde les notification de facebook, elle arrive presque en live

              fait le moi toute les 5 seconde et puis je modifierai a ma guise :)

              Deja merci beaucoup
              • Partager sur Facebook
              • Partager sur Twitter
                14 novembre 2010 à 12:50:54

                Voila :
                <html>
                <head>
                
                <script>
                
                function getXMLHttpRequest() {
                	var xhr = null;
                	if (window.XMLHttpRequest || window.ActiveXObject) {
                		if (window.ActiveXObject) {
                			try {
                				xhr = new ActiveXObject("Msxml2.XMLHTTP");
                			} catch(e) {
                				xhr = new ActiveXObject("Microsoft.XMLHTTP");
                			}
                		} else {
                			xhr = new XMLHttpRequest(); 
                		}
                	} else {
                		alert("Erreur : XMLHttpRequest non prit en charge !");
                		return null;
                	}
                	return xhr;
                }
                
                function ajax(url) {
                	this.xhr = getXMLHttpRequest();
                	this.xhr.open('GET', url, true);
                	this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                	this.xhr.send();
                }
                
                function afficher() {
                	var temp = new ajax('./ma_page.php');
                	temp.xhr.onreadystatechange = function() {
                		if(temp.xhr.readyState == 4 && (temp.xhr.status == 200 || temp.xhr.status == 0)) {
                			document.getElementById('resultat').innerHTML = temp.xhr.responseText;
                		} else if(temp.xhr.status >= 400) {
                			alert('Erreur : Affichage de la page impossible !');
                		}
                	}
                	setTimeout("afficher();", 5000);// Temps rafrechissement --> 5000ms = 5s
                }
                
                </script>
                
                </head>
                <body onload="afficher();">
                
                <input type="button" value="Actualiser manuelement" onclick="afficher();">
                
                <div id="resultat"></div>
                
                </body>
                </html>
                
                • Partager sur Facebook
                • Partager sur Twitter
                  14 novembre 2010 à 12:54:07

                  merci je test et je te dit


                  Arf enfete, je ne vois pas trop comment l'utiliser peux tu m'expliquer ?

                  J'ai donc ma_page.php qui contient la connexion a la base de donnée



                  <? $requete2 = mysql_query("SELECT id, COUNT(*) AS nbr FROM membres 
                  WHERE id = '".$_SESSION['id']."'
                  GROUP BY pseudo") or die(mysql_error());
                  $data2 = mysql_fetch_assoc($requete2);
                  $demande_ami = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_amis 
                  WHERE ami_to = '.intval($data2['id']).' AND ami_confirm = "0"'), 0); ?>
                  
                   <?php $requete2 = mysql_query("SELECT id, COUNT(*) AS nbr FROM membres 
                  WHERE id = '".$_SESSION['id']."'
                  GROUP BY pseudo") or die(mysql_error());
                  $data2 = mysql_fetch_assoc($requete2);
                  $notif = mysql_result(mysql_query('SELECT COUNT(*) FROM notif_site 
                  WHERE ami_to = '.intval($data2['id']).' AND ami_confirm = "0" AND ami_from != '.$_SESSION['id'].''), 0); ?>
                  


                  ma page avec l'ajax

                  <script>
                  
                  function getXMLHttpRequest() {
                  	var xhr = null;
                  	if (window.XMLHttpRequest || window.ActiveXObject) {
                  		if (window.ActiveXObject) {
                  			try {
                  				xhr = new ActiveXObject("Msxml2.XMLHTTP");
                  			} catch(e) {
                  				xhr = new ActiveXObject("Microsoft.XMLHTTP");
                  			}
                  		} else {
                  			xhr = new XMLHttpRequest(); 
                  		}
                  	} else {
                  		alert("Erreur : XMLHttpRequest non prit en charge !");
                  		return null;
                  	}
                  	return xhr;
                  }
                  
                  function ajax(url) {
                  	this.xhr = getXMLHttpRequest();
                  	this.xhr.open('GET', url, true);
                  	this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                  	this.xhr.send();
                  }
                  
                  function afficher() {
                  	var temp = new ajax('ma_page.php');
                  	temp.xhr.onreadystatechange = function() {
                  		if(temp.xhr.readyState == 4 && (temp.xhr.status == 200 || temp.xhr.status == 0)) {
                  			document.getElementById('resultat').innerHTML = temp.xhr.responseText;
                  		} else if(temp.xhr.status >= 400) {
                  			alert('Erreur : Page inexistante !');
                  		}
                  	}
                  	setTimeout("afficher();", 5000);// Temps rafrechissement --> 5000ms = 5s
                  }
                  
                  </script>
                  


                  et je met ou mon menu qui fait appell a la requete php de ma_page.php ?

                  La voici:

                  <div id="menuhaut"><tr><a href="accueil.php">Tableau de bord</a> |</tr> <tr><a href="article2.php">Actualités</a> |</tr> <tr><a href="profil.php?id=<?php echo $_SESSION['id'] ?>">Mon Profil</a> |</tr><tr><a href="actus.php"> Actualités Insolites</a> | </tr><tr><a href="gestionamis.php">Gestions des demandes d'amis</span> <?php if ($demande_ami != 0) { ?> <span style="color:purple;font-weight:bold">(<?php echo $demande_ami?>)</span> <?php } ?></a> | </tr><tr><a href="notification.php">Notifications <?php if ($demande_ami2 != 0) { ?> <embed src="12.mp3" width="70" height="24" autostart="true"" loop="True" align="left" id="bruit"> </embed></object>
                  <span style="color:purple;font-weight:bold">(<?php echo $notif ?>)</span> <?php } ?></a></tr></div>
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 novembre 2010 à 13:16:06

                    Dans ma_page.php tu met le script php qui te permet d'afficher ce qui ya dans ta BDD.
                    Ajax va charger la page et l'afficher...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 novembre 2010 à 13:25:38

                      voila ma page menu haut

                      <?php
                      session_start();
                      if (isset($_SESSION['pseudo']))//On vérifie que le variable existe.
                      {
                              $pseudo=$_SESSION['pseudo'];//On récupère la valeur de la variable de session.
                      }
                      else
                      {
                              $pseudo=0;//Si $_SESSION['connect'] n'existe pas, on donne la valeur "0".
                      }
                             
                      if ($pseudo != "0") // Si le visiteur s'est identifié.
                      {
                      // On affiche la page cachée.
                      ?>
                      <link href="menu.css" rel="stylesheet" type="text/css" /> 
                      <script>
                      
                      function getXMLHttpRequest() {
                      	var xhr = null;
                      	if (window.XMLHttpRequest || window.ActiveXObject) {
                      		if (window.ActiveXObject) {
                      			try {
                      				xhr = new ActiveXObject("Msxml2.XMLHTTP");
                      			} catch(e) {
                      				xhr = new ActiveXObject("Microsoft.XMLHTTP");
                      			}
                      		} else {
                      			xhr = new XMLHttpRequest(); 
                      		}
                      	} else {
                      		alert("Erreur : XMLHttpRequest non prit en charge !");
                      		return null;
                      	}
                      	return xhr;
                      }
                      
                      function ajax(url) {
                      	this.xhr = getXMLHttpRequest();
                      	this.xhr.open('GET', url, true);
                      	this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                      	this.xhr.send();
                      }
                      
                      function afficher() {
                      	var temp = new ajax('./ma_page.php');
                      	temp.xhr.onreadystatechange = function() {
                      		if(temp.xhr.readyState == 4 && (temp.xhr.status == 200 || temp.xhr.status == 0)) {
                      			document.getElementById('resultat').innerHTML = temp.xhr.responseText;
                      		} else if(temp.xhr.status >= 400) {
                      			alert('Erreur : Page inexistante !');
                      		}
                      	}
                      	setTimeout("afficher();", 5000);// Temps rafrechissement --> 5000ms = 5s
                      }
                      
                      </script>
                      
                      
                      
                      <?php } ?>
                      


                      et ma_page.php

                      <?php
                      session_start();
                      if (isset($_SESSION['pseudo']))//On vérifie que le variable existe.
                      {
                              $pseudo=$_SESSION['pseudo'];//On récupère la valeur de la variable de session.
                      }
                      else
                      {
                              $pseudo=0;//Si $_SESSION['connect'] n'existe pas, on donne la valeur "0".
                      }
                             
                      if ($pseudo != "0") // Si le visiteur s'est identifié.
                      {
                      // On affiche la page cachée.
                      ?>
                      
                      <?php
                      
                       $requete2 = mysql_query("SELECT id, COUNT(*) AS nbr FROM membres 
                      WHERE id = '".$_SESSION['id']."'
                      GROUP BY pseudo") or die(mysql_error());
                      $data2 = mysql_fetch_assoc($requete2);
                      $demande_ami = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_amis 
                      WHERE ami_to = '.intval($data2['id']).' AND ami_confirm = "0"'), 0); ?>
                      
                       <?php $requete2 = mysql_query("SELECT id, COUNT(*) AS nbr FROM membres 
                      WHERE id = '".$_SESSION['id']."'
                      GROUP BY pseudo") or die(mysql_error());
                      $data2 = mysql_fetch_assoc($requete2);
                      $notif = mysql_result(mysql_query('SELECT COUNT(*) FROM notif_site 
                      WHERE ami_to = '.intval($data2['id']).' AND ami_confirm = "0" AND ami_from != '.$_SESSION['id'].''), 0); ?>
                      
                      
                      <div id="menuhaut"><tr><a href="accueil.php">Tableau de bord</a> |</tr> <tr><a href="article2.php">Actualités</a> |</tr> <tr><a href="profil.php?id=<?php echo $_SESSION['id'] ?>">Mon Profil</a> |</tr><tr><a href="actus.php"> Actualités Insolites</a> | </tr><tr><a href="gestionamis.php">Gestions des demandes d'amis</span> <?php if ($demande_ami != 0) { ?> <span style="color:purple;font-weight:bold">(<?php echo $demande_ami?>)</span> <?php } ?></a> | </tr><tr><a href="notification.php">Notifications <?php if ($demande_ami2 != 0) { ?> <embed src="12.mp3" width="70" height="24" autostart="true"" loop="True" align="left" id="bruit"> </embed></object>
                      <span style="color:purple;font-weight:bold">(<?php echo $notif ?>)</span> <?php } ?></a></tr></div>
                      
                      
                      <?php } ?>
                      




                      Ai-je mal fait les chose ? car menuhaut.php n'affiche RIEN
                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 novembre 2010 à 13:32:25

                        T'es identifiant MySQL, cache sa tout de suite !!!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 novembre 2010 à 13:43:37

                          On écrit :
                          setTimeout(afficher, 5000);
                          

                          Et pas :
                          setTimeout("afficher();", 5000);
                          

                          Bonnes pratiques javascript

                          Et en plus de cacher tes identifiants SQL, CHANGE-LES
                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 novembre 2010 à 13:56:00

                            Citation : LCaba

                            On écrit :

                            setTimeout(afficher, 5000);
                            


                            Et pas :

                            setTimeout("afficher();", 5000);
                            



                            La c'est de la syntaxe... C'est pas très important.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 novembre 2010 à 14:06:33

                              Citation : sitexw


                              La c'est de la syntaxe... C'est pas très important.



                              :-°o_O

                              C'est pas simplement de la syntaxe. Ta méthode fait appel à eval et fait redémarrer l'interpréteur javascript toutes les 5 secondes, juste pour appeler une fonction ?! As tu seulement suivi le lien que j'ai posté ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                14 novembre 2010 à 14:33:19

                                ohlala quel erreur de ma part, jai poster le message tres tres vite et je n'ai meme pas penser a cacher les identifiant mysql --'

                                mais sa y'ai je les ai changé --'

                                je vais essayé en modifiant le truk de lcaba
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  14 novembre 2010 à 14:37:10

                                  Mon code ne résout aucun problème, il rend juste plus performant l'appel à afficher()
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    14 novembre 2010 à 15:03:40

                                    Bon je viens de changer sur tout mes page la connexion a ma base de donnée, j'ai donc changer le mdp de connexion à ma base de donnée mais mon probleme n'est tjr pas résolu..

                                    Je re-pose le probleme.

                                    J'ai ma page menuhaut.php qui fait appel a ma page ma_page.php

                                    <?php
                                    session_start();
                                    if (isset($_SESSION['pseudo']))//On vérifie que le variable existe.
                                    {
                                            $pseudo=$_SESSION['pseudo'];//On récupère la valeur de la variable de session.
                                    }
                                    else
                                    {
                                            $pseudo=0;//Si $_SESSION['connect'] n'existe pas, on donne la valeur "0".
                                    }
                                           
                                    if ($pseudo != "0") // Si le visiteur s'est identifié.
                                    {
                                    // On affiche la page cachée.
                                    ?>
                                    <link href="menu.css" rel="stylesheet" type="text/css" /> 
                                    <script>
                                    
                                    function getXMLHttpRequest() {
                                    	var xhr = null;
                                    	if (window.XMLHttpRequest || window.ActiveXObject) {
                                    		if (window.ActiveXObject) {
                                    			try {
                                    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
                                    			} catch(e) {
                                    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
                                    			}
                                    		} else {
                                    			xhr = new XMLHttpRequest(); 
                                    		}
                                    	} else {
                                    		alert("Erreur : XMLHttpRequest non prit en charge !");
                                    		return null;
                                    	}
                                    	return xhr;
                                    }
                                    
                                    function ajax(url) {
                                    	this.xhr = getXMLHttpRequest();
                                    	this.xhr.open('GET', url, true);
                                    	this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                                    	this.xhr.send();
                                    }
                                    
                                    function afficher() {
                                    	var temp = new ajax('./ma_page.php');
                                    	temp.xhr.onreadystatechange = function() {
                                    		if(temp.xhr.readyState == 4 && (temp.xhr.status == 200 || temp.xhr.status == 0)) {
                                    			document.getElementById('resultat').innerHTML = temp.xhr.responseText;
                                    		} else if(temp.xhr.status >= 400) {
                                    			alert('Erreur : Page inexistante !');
                                    		}
                                    	}
                                    	setTimeout(afficher, 5000);// Temps rafrechissement --> 5000ms = 5s
                                    }
                                    
                                    </script>
                                    
                                    
                                    
                                    <?php } ?>
                                    


                                    ma page ma_page.php

                                    <?php
                                    session_start();
                                    if (isset($_SESSION['pseudo']))//On vérifie que le variable existe.
                                    {
                                            $pseudo=$_SESSION['pseudo'];//On récupère la valeur de la variable de session.
                                    }
                                    else
                                    {
                                            $pseudo=0;//Si $_SESSION['connect'] n'existe pas, on donne la valeur "0".
                                    }
                                           
                                    if ($pseudo != "0") // Si le visiteur s'est identifié.
                                    {
                                    // On affiche la page cachée.
                                    ?>
                                    
                                    <?php
                                     $requete2 = mysql_query("SELECT id, COUNT(*) AS nbr FROM membres 
                                    WHERE id = '".$_SESSION['id']."'
                                    GROUP BY pseudo") or die(mysql_error());
                                    $data2 = mysql_fetch_assoc($requete2);
                                    $demande_ami = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_amis 
                                    WHERE ami_to = '.intval($data2['id']).' AND ami_confirm = "0"'), 0); ?>
                                    
                                     <?php $requete2 = mysql_query("SELECT id, COUNT(*) AS nbr FROM membres 
                                    WHERE id = '".$_SESSION['id']."'
                                    GROUP BY pseudo") or die(mysql_error());
                                    $data2 = mysql_fetch_assoc($requete2);
                                    $notif = mysql_result(mysql_query('SELECT COUNT(*) FROM notif_site 
                                    WHERE ami_to = '.intval($data2['id']).' AND ami_confirm = "0" AND ami_from != '.$_SESSION['id'].''), 0); ?>
                                    
                                    
                                    <div id="menuhaut"><tr><a href="accueil.php">Tableau de bord</a> |</tr> <tr><a href="article2.php">Actualités</a> |</tr> <tr><a href="profil.php?id=<?php echo $_SESSION['id'] ?>">Mon Profil</a> |</tr><tr><a href="actus.php"> Actualités Insolites</a> | </tr><tr><a href="gestionamis.php">Gestions des demandes d'amis</span> <?php if ($demande_ami != 0) { ?> <span style="color:purple;font-weight:bold">(<?php echo $demande_ami?>)</span> <?php } ?></a> | </tr><tr><a href="notification.php">Notifications <?php if ($demande_ami2 != 0) { ?> <embed src="12.mp3" width="70" height="24" autostart="true"" loop="True" align="left" id="bruit"> </embed></object>
                                    <span style="color:purple;font-weight:bold">(<?php echo $notif ?>)</span> <?php } ?></a></tr></div>
                                    
                                    
                                    <?php } ?>
                                    


                                    Cela m'affiche une page menuhaut.php VIDE

                                    Alors j'ai essayé de mettre
                                    <div id="menuhaut"><tr><a href="accueil.php">Tableau de bord</a> |</tr> <tr><a href="article2.php">Actualités</a> |</tr> <tr><a href="profil.php?id=<?php echo $_SESSION['id'] ?>">Mon Profil</a> |</tr><tr><a href="actus.php"> Actualités Insolites</a> | </tr><tr><a href="gestionamis.php">Gestions des demandes d'amis</span> <?php if ($demande_ami != 0) { ?> <span style="color:purple;font-weight:bold">(<?php echo $demande_ami?>)</span> <?php } ?></a> | </tr><tr><a href="notification.php">Notifications <?php if ($demande_ami2 != 0) { ?> <embed src="12.mp3" width="70" height="24" autostart="true"" loop="True" align="left" id="bruit"> </embed></object>
                                    <span style="color:purple;font-weight:bold">(<?php echo $notif ?>)</span>
                                    


                                    dans la page menu haut mais cela n'affiche pas les variable appelé par la requete ma_page.php :(

                                    Je ne sais pas pourquoi quelqu'un sait ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      12 décembre 2010 à 10:45:41

                                      Salut

                                      UP moi j'ai un affichage php qui fait appelle a une requete sql via un include, comment recharger la requete ?
                                      C'est pour avoir un systeme de notification en live
                                      ou un affichage des article dans ma rubrique actualité des amis, en live
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      recharger une requete php en ajax

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown