Accueil > Forum > > > > Formulaires : Listes déroulantes dynamiques liées AJAX
Formulaires : Listes déroulantes dynamiques liées AJAX
mercredi 10 juin 2009 à 12:06:27 |
Formulaires : Listes déroulantes dynamiques liées AJAX

kinl2005
|
Bonjour,
Je suis novice et je me suis appuyé un petit bout de code , et je n'arrive pas à le faire fonctionner :
Le code d'origine est là :=> J'ai comme erreur : Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\LABO\AJAX_11\index3.php on line 35
Alors que mes quotes sont correctes...
Voici les 3 pages.
<= DEBUT index3.php => <?php echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"); /* Variables de connexion : ajustez ces paramètres selon votre propre environnement */ $serveur = "localhost"; $admin = "root"; $mdp = ""; $base = ""; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" /> <title>Liste déroulantes dynamiques liées</title>
<script type="text/javascript" src="./dept_xhr.js" charset="iso_8859-1"></script> <?php /* Requête SQL de récupération des données de la première liste */ $sql = "SELECT `country.idcountry` AS idr, `name_country` ". "FROM `country`, `packs` ". "WHERE `country.idcountry` = `packs.idcountry` ". "AND `status_pack` = `'I search'` ". "GROUP BY name_country` ". "ORDER BY name_country`;";
/* Connexion et exécution de la requête */ $connexion = mysql_connect($serveur, $admin, $mdp); if($connexion != false) { $choixbase = mysql_select_db($base, $connexion); $recherche = mysql_query($sql, $connexion); /* Création du tableau PHP des valeurs récupérées */ $country = array(); /* Index du département par tableau régional */ $id = 0; while($ligne = mysql_fetch_assoc($recherche)) { $country[$ligne['idr']] = $ligne['name_country']; } ?> </head> <body style="font-family: verdana, helvetica, sans-serif; font-size: 85%"> <h3>Version Utilisant AJAX</h3> <p>Vous constaterez que le délai de latence entre la sélection et la mise à jour est quasiment intermédiaire entre les versions 100% PHP et JavaScript.</p> <h3>Les Séries qu'il me manque</h3>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept"> <fieldset style="border: 3px double #333399"> <legend>Sélectionnez un pays</legend> <select name="country" id="country" onchange="getDepartements(this.value);"> <option value="vide">- - - Choisissez un pays - - -</option> <?php /* Construction de la première liste : on se sert du tableau PHP */ foreach($country as $nr => $nom) { ?> <option value="<?php echo($nr); ?>"><?php echo($nom); ?></option> <?php } ?> </select> <!-- ICI, le secret : on met un bloc avec un id ou va s'insérer le code de la seconde liste déroulande --> <span id="blocDepartements"></span><br /> <input type="submit" name="ok" id="ok" value="Envoyer" /> </fieldset> </form> <p><a href="./index.php" title="Aller vers la version 100% PHP">Aller vers la version 100% PHP</a></p> <p><a href="./index2.php" title="Aller vers la version JavaScript">Aller vers la version JavaScript</a></p> <?php } else { /* Si vous arrivez ici, vous avez un gros problème avec la connexion au serveur de base de données */ ?> </head> <body> <p>La connexion au serveur de base de données a échoué. Aucun élément ne peut être affiché.</p> <?php } ?> </body> </html> <= FIN index3.php =>
<= DEBUT departements.php => <?php /** * Code qui sera aeeplé par un objet XHR et qui * retournera la liste déroulante des départements * correspondant à la région sélectionnée. */ /* Paramètres de connexion */ $serveur = "localhost"; $admin = "root"; $mdp = ""; $base = "";
/* On récupère l'identifiant du pay choisi. */ $idr = isset($_GET['idr']) ? $_GET['idr'] : false; /* Si on a un pay, on procède à la requête */ if(false !== $idr) { /* Cération de la requête pour avoir les series de ce pay*/ $sql2 = "SELECT `idpack`, `idcountry`, `name_series` ". "FROM `packs` ". "WHERE `idcountry` = ".$idr."". "GROUP BY `name_series` ". "ORDER BY `name_series ASC`;"; $connexion = mysql_connect($serveur, $admin, $mdp); mysql_select_db($base, $connexion); $rech_series = mysql_query($sql2, $connexion); /* Un petit compteur pour les series */ $nd = 0; /* On crée deux tableaux pour les numéros et les noms des départements */ $code_country = array(); $nom_series = array(); /* On va mettre les numéros et noms des départements dans les deux tableaux */ while(false != ($ligne_series = mysql_fetch_assoc($rech_series))) { $code_country[] = $ligne_series['idcountry']; $nom_series[] = $ligne_series['name_series']; $nd++; } /* Maintenant on peut construire la liste déroulante */ $liste = ""; $liste .= '<select name="series" id="series">'."\n"; for($d = 0; $d < $nd; $d++) { $liste .= ' <option value="'. $code_country[$d] .'">'. htmlentities($nom_series[$d]) .' ('. $code_country[$d] .')</option>'."\n"; } $liste .= '</select>'."\n"; /* Un petit coup de balai */ mysql_free_result($rech_series); /* Affichage de la liste déroulante */ echo($liste); } /* Sinon on retourne un message d'erreur */ else { echo("<p>Une erreur s'est produite. La région sélectionnée comporte une donnée invalide.</p>\n"); } ?> <= FIN departements.php => <= DEBUT dept_xhr.js => /** * Lister les départements d'une région avec un objet * XMLHTTPRequest. */ /* Création de la variable globale qui contiendra l'objet XHR */ var requete = null; /** * Fonction privée qui va créer un objet XHR. * Cette fonction initialisera la valeur dans la variable globale définie * ci-dessus. */ function creerRequete() { try { /* On tente de créer un objet XmlHTTPRequest */ requete = new XMLHttpRequest(); } catch (microsoft) { /* Microsoft utilisant une autre technique, on essays de créer un objet ActiveX */ try { requete = new ActiveXObject('Msxml2.XMLHTTP'); } catch(autremicrosoft) { /* La première méthode a échoué, on en teste une seconde */ try { requete = new ActiveXObject('Microsoft.XMLHTTP'); } catch(echec) { /* À ce stade, aucune méthode ne fonctionne... mettez donc votre navigateur à jour ;) */ requete = null; } } } if(requete == null) { alert('Impossible de créer l\'objet requête,\nVotre navigateur ne semble pas supporter les object XMLHttpRequest.'); } } /** * Fonction privée qui va mettre à jour l'affichage de la page. */ function actualiserDepartements() { var listeDept = requete.responseText; var blocListe = document.getElementById('blocDepartements'); blocListe.innerHTML = listeDept; }
/** * Fonction publique appelée par la page affichée. * Cette fonction va initialiser la création de l'objet XHR puis appeler * le code serveur afin de récupérer les données à modifier dans la page. */ function getDepartements(idr) { /* Si il n'y a pas d'identifiant de région, on fait disparaître la seconde liste au cas où elle serait affichée */ if(idr == 'vide') { document.getElementById('blocDepartements').innerHTML = ''; } else { /* À cet endroit précis, on peut faire apparaître un message d'attente */ var blocListe = document.getElementById('blocDepartements'); blocListe.innerHTML = "Traitement en cours, veuillez patienter..."; /* On crée l'objet XHR */ creerRequete(); /* Définition du fichier de traitement */ var url = 'departements.php?idr='+ idr; /* Envoi de la requête à la page de traitement */ requete.open('GET', url, true); /* On surveille le changement d'état de la requête qui va passer successivement de 1 à 4 */ requete.onreadystatechange = function() { /* Lorsque l'état est à 4 */ if(requete.readyState == 4) { /* Si on a un statut à 200 */ if(requete.status == 200) { /* Mise à jour de l'affichage, on appelle la fonction apropriée */ actualiserDepartements(); } } }; requete.send(null); } } <= FIN dept_xhr.js =>
Merci d'avance pour vote aide !!!!!
|
|
samedi 13 juin 2009 à 13:12:17 |
Re : Formulaires : Listes déroulantes dynamiques liées AJAX

nautilus99
|
Bonjour,
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\LABO\AJAX_11\index3.php on line 35
signifie tout bêtement que la reque n'a pas renvoyé une resource, mais une erreur. Que raconte exactement mysql_error()... En général, ça signifie que la requête est mauvaise et a généré une erreur MySQL...
Poste sdonc le résultat de mysql_error() Pour savoir comment l'utiliser, regardes dans le manuel de php... Il y a même des exemples...
|
|
Cette discussion est classée dans : liste, connexion, requete, series, country
Répondre à ce message
Sujets en rapport avec ce message
resultat d'une requete dans listbox [ par herveguedj ]
bonjour, je suis tout nouveau en php et je debute ma premiere appli j'aimerai mettre la liste complte d'une requete que je recupere dans un listebox m
pb avec une liste... [ par sepul ]
Et oui au secours ! nan j'ai un pb avec une liste. En effet, je dispose d'une liste et lorsque que l'on clic sur un élément je dois recupérer l'élémen
requete tri alphabet [ par bob ]
salut tout le monde je fais des requetes de tri alphabetique sur mon site par exemple, si l'utilisateur clic sur A, j'affiche une liste avec tous les
Problème requete [ par iomega ]
Bonjour à tous j'ai un problème avec une requete!!!je dois récuperer dans une liste déroulante que voici le mois et l'année de cette liste et mettre l
requete [ par poupinette10 ]
Voila jai un formulaire avec 2 listes déroulantesla premiere liste déroulante contient des matiereset la deuxieme contient des fichiers!je voudrais en
Alimentation d'une liste déroulante via Mysql [ par Eric25 ]
Bonjour, Mon code est tout simple et pourtant je n'arrive pas a trouver ce qui cloche . Je souhaite alimenter une liste déroulante à travers une requê
Probleme d'exécution d'un requete avec un parametre récupéré d'un lien ... [ par Poolky ]
Salut à vous ... voila j'ai un petit problème avec l'exécution d'une requête "delete" contenant une variable que je passe par un lien. J'ai deux pages
executer une requete en selectionnant une ligne ds une liste déroulante [ par mnoussa ]
salut je voudrais savoir comment en selectionnant une ligne ds une liste déroulante afficher un tableau contenant les resultat d'une requete.ps: les e
selectionner une ligne ds une liste deroulante et executer une requete [ par mnoussa ]
salut je voudrais savoir comment en selectionnant une ligne ds une liste déroulante afficher un tableau contenant les resultat d'une requete. ps: les
sous formulaire à réactualiser [ par niche ]
salut à tous,j'ai un problème de réactualisation d'un sous formulaire au sein d'un formulaire.Ce sous formulaire est lié à une requete.Cette requete e
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|