IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Récupérer le résultat d'une requête (type SELECT)


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Par défaut [AJAX] Récupérer le résultat d'une requête (type SELECT)
    Bonjour à tous,

    j'ai beau chercher sur Google depuis ce matin, mais malheureusement, je n'ai pas trouvé mon bonheur.
    Je vous explique mon problème:

    Dans une infoBulle d'une GoogleMap, je dois pouvoir afficher une image, le nom de l'agence, l'adresse, le téléphone ainsi qu'une adresse e-mail.... MAIS aussi, les employés de cette agence !

    Et ce sont les employés qui m'embêtent un peu...

    En effet, je n'arrive pas à récupérer le tableau $hbs que je créer....

    Je vous montre mon code actuel :

    fichier entreprise.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    function admarker3(location,marker, tel, mail, image, nom, id) {
    	 var contenu='<div id="'+id+'" style="color: #666666; height: 100%; width: 100%;"><div align="center">';
    	 if(image.length>0){
    		contenu+='<img src="images/'+image+'" alt="Image agence" style="max-width: 200px; max-height: 200px;"/><br />';
    	  }
    	  contenu+=nom+'</div>'+location+'<br />';
    	  if(tel.length>0){
    		contenu+='T&eacute;l&eacute;phone : '+tel+'<br />';
    	  }
    	  if(mail.length>0){
    		contenu+='Contact : '+mail;
    	  }
     
     
    	var xhr_object = 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.onreadystatechange  = function(){ 
    		if(xhr_object.readyState  == 4){
    			if(xhr_object.status  == 200){
    				var rep= xhr_object.responseText;
    					alert('Reussite'+rep);
    			}
    			else{ 
    				alert('Erreur : '+xhr_object.status);
    			}
    		}
    	}; 
     
    	var method   = "POST";
    	var filename = "ajax/recupEmploye.php";
    	var requete  = "idAg=" + id;
    	xhr_object.open(method, filename, true);
    	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     
    	xhr_object.send(null);				
     
           contenu+='</div>';
    	 infoBulle = new google.maps.InfoWindow({
    		content: contenu
    	 });
    	  infoBulle.close();
    	   infoBulle.open(map, marker);
    	  }
    Code du fichier recupEmploye.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    require_once '../../admin/classes/db.class.php';
    	require_once '../../admin/connect.php';
     
    	$db = new db;
     
    	if (!empty($_POST['idAg']) and !empty($_POST['idAg'])) {
    		$idAg = $_POST['idAg'];
     
    		$requete="SELECT * FROM employes WHERE idAgence=".$idAg;
    		//echo $requete;
    		$res=$db->query($requete) or die ('ERREUR SQL : '.mysql_error().' &agrave; la ligne '.__line__.' du fichier '.__file__);
    		$hbs=array();
    		while($tab=mysql_fetch_array($res)){
    			$hbs[]=$tab;
    		}
    		return $hbs;
    	}
    Mon alert('Reussite'+rep); me renvoie une réponse vide...
    En utilisant FireBug, la ligne 'echo $requete' m'a permis de voir que j’exécutais la bonne requête

    Si quelqu'un pouvait m'aider, ca serait vraiment sympa =)
    Merci d'avance aux personnes qui pourrait m'aider =)

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Bonjour,

    Pourquoi vérifier deux fois ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($_POST['idAg']) and !empty($_POST['idAg'])) {
    Tu n'aurai pas "oublié" de transmettre la valeur de idAg dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xhr_object.send(null);
    xhr_object.send(requete);
    Cordialement,
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  3. #3
    Membre averti
    Femme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Par défaut
    Tout d'abord, merci pour ta réponse aussi rapide Torgar =)

    Effectivement, je n'avais pas remarqué que je faisais 2 fois la même vérification... Je voulais d'abord vérifier si $_POST['idAg'] existait et ensuite vérifier qu'il ne soit pas vide...

    Ensuite, même en remplaçant le
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xhr_object.send(requete);
    comme tu me l'as bien fait remarqué, ça me renvoi toujours une réponse vide...

  4. #4
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Dans ton fichier recupEmploye.php fait un return du POST pour voir si c'est bien envoyé, traité et renvoyé à ton javascript.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    require_once '../../admin/classes/db.class.php';
    require_once '../../admin/connect.php';
     
    return $_POST['idAg'];
     
    $db = new db;
     
    if (!empty($_POST['idAg']) and !empty($_POST['idAg'])) {
        $idAg = $_POST['idAg'];
     
        $requete="SELECT * FROM employes WHERE idAgence=".$idAg;
        //echo $requete;
        $res=$db->query($requete) or die ('ERREUR SQL : '.mysql_error().' &agrave; la ligne '.__line__.' du fichier '.__file__);
        $hbs=array();
        while($tab=mysql_fetch_array($res)){
            $hbs[] = $tab; // Est-ce bien ce que tu veux ?
        }
        return $hbs;
    }
    ?>
    J'en profite pour te poser une petite question en commentaire, histoire d'être sûr
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  5. #5
    Membre averti
    Femme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Par défaut
    En faisant un "return $_POST", j'ai une alert qui m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reussite SELECT * FROM employes WHERE idAgence=2
    Euh.... d'un coup je n'en suis plus si certaine...
    Ce qu'il me faudrait à la fin, c'est un tableau (de tableau ?), où j'aurais toutes les informations pour de tout les employés d'une agence...

    Je me suis peut-être trompée sur ce bout de code....

    EDIT : en regardant d'autres code (qui fonctionne, utilisé dans des fonctions PHP), c'est réellement de cela dont j'ai besoin

  6. #6
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Autant il aurait été retourné Reussite 2 j'aurai été content, autant là qu'il te retourne la requête avec je le suis moins.

    C'est toi qui à rajouté la requête pour être sûr ?


    Si tu veux retourner un tableau...de tableau il faut faire autrement parce que tu aura des doublons parce que tu utilise mysql_fetch_array(). Voir ici pour plus de détail

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $query = mysql_query('SELECT * FROM ville');
    while ($array = mysql_fetch_array($query)) {
      $output[] = $array;
    }
     
    // donneras un tableau du style :
     
    Array (     
      [0] => Array         (             
                [0] => 1 
                [prod_id] => 1
                [1] => Paris
                [libel_ville] => Paris
      [1] => Array (
                [0] => 2 
                [prod_id] => 2
                [1] => Marseille
                [libel_ville] => Marseille
    )
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer le résultat d'une requête UNION
    Par brazza dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/01/2007, 21h33
  2. [JTable] Récupérer le résultat d'une requête SQL
    Par malik1982 dans le forum Composants
    Réponses: 10
    Dernier message: 08/07/2006, 19h52
  3. Réponses: 3
    Dernier message: 16/10/2005, 11h53
  4. récupérer le résultat d'une requête sql dans un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2005, 14h07
  5. Réponses: 7
    Dernier message: 30/06/2005, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo