Partage
  • Partager sur Facebook
  • Partager sur Twitter

[AJAX] Récupération de données avec une requête SQL

Sujet résolu
    2 octobre 2009 à 14:57:45

    Bonjour.

    Je souhaite aller chercher en AJAX des données ce trouvant sur une BDD MySQL.

    Pour ce faire voici ce que j'ai fait :

    Mon script PHP qui effectue ma requête (requete.php).
    <?php
    
    mysql_connect("localhost", "root", "mysql");
    mysql_select_db("test");
    
    $min = $_GET['min'];
    $max = $_GET['max'];
    
    $reponse = mysql_query("SELECT pseudo FROM test LIMIT $min, $max"); 
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
        echo $donnees['pseudo'];
        echo "<br />";
    }
    mysql_close();
    ?>
    


    Voici mon fichier html qui permet d'appeler grâce à l'objet XHR la page requete.php avec les bons arguments.

    <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
    <html>
    <head>
    <title>SoonNight</title>
    
    <script type="text/javascript">
    
    	function affichage(texte)
    	{
    		document.getElementById('membres').innerHTML = texte;
    	}
    
    
    	function charger(min, max)
    	{
    		file('requete.php?min='+min+'&max='+max+);
    	}
    
    	function file(fichier)
    	{
    	if(window.XMLHttpRequest)
    		xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject)
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	else
    		return(false);
    	xhr_object.open("GET", fichier, false);
    	xhr_object.send(null);
    	if(xhr_object.readyState == 4)
    		affichage(xhr_object.responseText)
    	else 
    		return(false);
    	}
    	
    </script>
    
    </head>
    <body>
    	<a href="" onClick="charger(0,5)">Suivant</a>
    	<div id="membres"></div>
    
    	</body>
    </html>
    


    Donc, pour vous simplifier la vie :

    affichage -> Permet d'écrire dans le div cible. (Ici c'est 'membres').
    charger -> Permet d'ouvrir mon fichier .php en lui passant les bons args.
    file -> Création de l'objet XHR et devrait NORMALEMENT renvoyé le contenu de la page dans mon <div>

    Sauf que ça ne fonctionne pas, et je ne comprend pas du tout pourquoi.

    PS : Oui je ne contrôle pas mes variables dans le .php etc, mais c'est juste pour faire des tests donc pas besoin de me le préciser :D

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      2 octobre 2009 à 15:21:44

      Rajoutes des alert voir ou sa merde.

      Ps: Le synchrone c'est mal, ou pas top en tout cas.

      Edit:
      file('requete.php?min='+min+'&max='+max+);
      


      Un + en trop.. Vive les consoles d'erreurs intégré aux navigateur..
      • Partager sur Facebook
      • Partager sur Twitter
        2 octobre 2009 à 15:29:10

        Arf ouais, le con, faute d'inattention -____-

        Mais ça ne fonctionne pas non plus, je viens de patcher et j'ai revérifier avec firebug, plus d'erreur, mais le contenu ne passe toujours pas.

        M'énerve ce truc :p

        En tout cas Tiller merci de m'avoir signalé cette erreur.

        EDIT : Ouais nan en fait c'est bon, j'arrive à récupérer un résultat. Fin' j'ai encore un peu de travail dessus quand même.

        RE-EDIT :

        Nouveau code :

        function file(fichier)
        	{
        		if (window.XMLHttpRequest)
        			xhr_object = new XMLHttpRequest();
        		else if(window.ActiveXObject)
        			xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
        		else
        			return(false);
        		xhr_object.open("GET", fichier, false);
        		xhr_object.send(null);
        		if (xhr_object.readyState == 4)
        		{
        			alert('');
        			affichage(xhr_object.responseText);
        		}
        		else 
        			return(false);
        	}
        


        Là, ça m'affiche mon alert vide, normal, et hop, ça m'affiche ce que je veux dans mon <div> et PAAAAAn ! Plus rien, il reste affiché une demie seconde. Je ne comprend pas pourquoi =/
        • Partager sur Facebook
        • Partager sur Twitter
          2 octobre 2009 à 16:46:22

          if (xhr_object.readyState == 4 && (xhr_object.status == 200 || xhr_object.status == 0)) {
          



          Essaies avec ce code, Et passes en Asynchrone ! N'utilises le synchrone que si t'y es obliger x_x
          • Partager sur Facebook
          • Partager sur Twitter
            2 octobre 2009 à 16:59:04

            Je viens de C/C ta ligne, et j'ai passé le code en asynchrone.

            Mais là, je n'ai même plus l'alert =/

            EDIT : Je reviens, je vais sauter par la fenêtre ...
            Il me plantait TOUT SIMPLEMENT car j'ai pas mis le # dans le href -___-'
            • Partager sur Facebook
            • Partager sur Twitter
              2 octobre 2009 à 17:52:03

              Un lien pour une action javascript saymal. Use un button.

              Et met le sujet en résolu si sa marche.
              • Partager sur Facebook
              • Partager sur Twitter
                5 octobre 2009 à 11:13:47

                ca faisait parti du cahier des charges :)
                • Partager sur Facebook
                • Partager sur Twitter

                [AJAX] Récupération de données avec une requête SQL

                × 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