Liste déroulante php,bd MySQL,pb codification
Résolu/Fermé
A voir également:
- Liste déroulante php,bd MySQL,pb codification
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Supprimer liste déroulante excel - Forum Excel
- Google sheet liste déroulante - Accueil - Guide bureautique
- Effacer liste déroulante - Forum Réseaux sociaux
66 réponses
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
26 sept. 2008 à 16:20
26 sept. 2008 à 16:20
Toutes mes excuses..... met celle-ci à la place ;)
Il manquait 2/3 trucs tu t'en seras rendu compte, puis le param n'était pas le bon.
Edit : pour répondre a ta dernière question, il faut que tu déclares tes 2 fichiers js, jquery et ajax.
Tu le fais sur 2 lignes donc :
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajax.js"></script>
Il manquait 2/3 trucs tu t'en seras rendu compte, puis le param n'était pas le bon.
function ajax(strthis) { $.ajax ( { type: "POST", url: "select_localisation.php", data: "var="+param, success: function(msg){alert( "Data Saved: "+msg );} } ); }
Edit : pour répondre a ta dernière question, il faut que tu déclares tes 2 fichiers js, jquery et ajax.
Tu le fais sur 2 lignes donc :
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajax.js"></script>
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
26 sept. 2008 à 16:25
26 sept. 2008 à 16:25
Bon envoie moi le code stp :)
Si alert n'apparaît pas, ça signifie que la fonction ajax n'est pas appelé
Si alert n'apparaît pas, ça signifie que la fonction ajax n'est pas appelé
- connexion.php
- index.php
- select_affaire.php
- select_localisation.php
- ajax.js
- jquery.js: pas de modif
<?php // connection à la base de données $base = mysql_connect ('localhost', 'root', ''); mysql_select_db ('essai', $base) ; ?>
- index.php
<HTML> <HEAD> <?php // appel du fichier contenant les paramètres de connexion au SGBD include "connexion.php"; ?> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="ajax.js"></script> </HEAD> <BODY> <table id='formulaire'> <tr id='tr_affaire'> <td class='title'><b>Selectionnez une affaire :</b></td><td><?php include('select_affaire.php')?></td> </tr> <tr id='tr_localisation'> </tr> </table> </BODY> </HTML>
- select_affaire.php
<HTML> <HEAD> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="ajax.js"></script> </HEAD> <BODY> <select id='select_affaire' name='select_affaire' onchange="ajax(this)"> <option value='void_affaire'>Choisir une affaire</option> <?php include("connexion.php"); $query = "SELECT DISTINCT affaire FROM analyses ORDER BY affaire ASC"; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $affaire = $row["affaire"]; echo "<option value='$affaire'>$affaire</option>"; } mysql_close(); ?> </select> </BODY> </HTML>
- select_localisation.php
<HTML> <HEAD> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="ajax.js"></script> </HEAD> <BODY> <select id='select_localisation' name='select_localisation'> <option value='void_localisation'>Choisir une localisation</option> <?php include("connexion.php"); $var=$_POST['var']; $query = "SELECT DISTINCT localisation FROM analyses WHERE affaire='$var' ORDER BY localisation ASC"; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $localisation = $row["localisation"]; echo "<option value='$localisation'>$localisation</option>"; } mysql_close(); ?> </select> </BODY> </HTML>
- ajax.js
function ajax(strthis) { $.ajax ( { type: "POST", url: "select_localisation.php", data: "var="+param, success: function(msg){alert( "Data Saved: "+msg );} } ); }
- jquery.js: pas de modif
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci de m'aider! J'ai l'impression d'être un vrai boulet! lol
Alors ok, j'ai tout recopié comme tu me l'as écrit.
Quand je clique sur une affaire, il m'affiche le message d'erreur suivant:
Data Saved: <select id='select_localisation' name='select_localisation'>
<option value='LOCALISATION XXYYZZ'> LOCALISATION XXYYZZ </option> </select>
Mais il ne m'affiche pas la boîte de saisie de la localisation...
Alors ok, j'ai tout recopié comme tu me l'as écrit.
Quand je clique sur une affaire, il m'affiche le message d'erreur suivant:
Data Saved: <select id='select_localisation' name='select_localisation'>
<option value='LOCALISATION XXYYZZ'> LOCALISATION XXYYZZ </option> </select>
Mais il ne m'affiche pas la boîte de saisie de la localisation...
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
26 sept. 2008 à 17:00
26 sept. 2008 à 17:00
mais non lol... Y'a quelques temps je ne savais pas le faire moi-même ;-)
Le tout c'est que tu comprennes bien au passage, car c'est toi qui rajoutera le dernier select (info3) ;-)
Donc maintenant c'est bon, il passe bien dans la fonction ajax.
remplace le contenu du fichier ajax.js par celui-ci :
- fichier ajax:
Le tout c'est que tu comprennes bien au passage, car c'est toi qui rajoutera le dernier select (info3) ;-)
Donc maintenant c'est bon, il passe bien dans la fonction ajax.
remplace le contenu du fichier ajax.js par celui-ci :
- fichier ajax:
function ajax(strthis) { var param = strthis.value; var selected_affaire = document.getElementById("select_affaire").options[document.getElementById("select_affaire").selectedIndex].value; $.ajax ( { type: "POST", url: "select_localisation.php", data: "var="+param, success: function(msg) { $("#tr_localisation").append("<td class='title'><b>Selectionnez une localisation :</b></td><td>"+ msg +"</td>"); } } //if(selected_affaire=="void_affaire") $("#tr_localisation").hide(); //else $("#tr_localisation").show(); ); }
Effectivement, maintenant il me propose la localisation. C'est à cause des 2 lignes mises en commentaires qu'il ne m'affiche pas la localisation. Si on les met en commentaire, cela fonctionne.
mais ce qui est amusant, c'est lorsque je sélectionne une affaire, il affiche donc le choix de la localisation.
Par contre, si je me suis plantée d'affaire et que je change mon choix dans ma liste d'affaire, il affiche une seconde boîte de saisie de la localisation! Du coup, on collectionne les boîtes de saisie de localisations.
mais ce qui est amusant, c'est lorsque je sélectionne une affaire, il affiche donc le choix de la localisation.
Par contre, si je me suis plantée d'affaire et que je change mon choix dans ma liste d'affaire, il affiche une seconde boîte de saisie de la localisation! Du coup, on collectionne les boîtes de saisie de localisations.
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
26 sept. 2008 à 17:15
26 sept. 2008 à 17:15
C'est justement à ça que servent les 2 lignes passées en commentaires ;-)
(hide = cacher, show = montrer)
Donc maintenant que nous avons cerné le problème. Remplace le contenu de ton fichier ajax.js par celui-ci :
EDIT : il manquait cela désolé : $("#tr_localisation").empty();
Tu as juste a remplacer le fichier ajax.js par celui ci donc :) ça devrait être bon
(hide = cacher, show = montrer)
Donc maintenant que nous avons cerné le problème. Remplace le contenu de ton fichier ajax.js par celui-ci :
$(document).ready ( function animation() { hide_select(); } ); function hide_select() { $("#tr_localisation").hide(); } function ajax(strthis) { var param = strthis.value; var selected_affaire = document.getElementById("select_affaire").options[document.getElementById("select_affaire").selectedIndex].value; $("#tr_localisation").empty(); $.ajax ( { type: "POST", url: "select_localisation.php", data: "var="+param, success: function(msg) { $("#tr_localisation").append("<td class='title'><b>Selectionnez une localisation :</b></td><td>"+ msg +"</td>"); } } if(selected_affaire=="void_affaire") $("#tr_localisation").hide(); else $("#tr_localisation").show(); ); }
EDIT : il manquait cela désolé : $("#tr_localisation").empty();
Tu as juste a remplacer le fichier ajax.js par celui ci donc :) ça devrait être bon
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
26 sept. 2008 à 17:21
26 sept. 2008 à 17:21
Arghhh :) bon tiens : je passe quelques trucs en commentaires, nous reprendrons plus tard si tu le veux bien je termine mes cours.
- fichier ajax.js
La ligne $("#tr_localisation").empty(); devrait bloqué le problème d'affichage
- fichier ajax.js
/* $(document).ready ( function animation() { hide_select(); } ); function hide_select() { $("#tr_localisation").hide(); } */ function ajax(strthis) { var param = strthis.value; var selected_affaire = document.getElementById("select_affaire").options[document.getElementById("select_affaire").selectedIndex].value; $("#tr_localisation").empty(); $.ajax ( { type: "POST", url: "select_localisation.php", data: "var="+param, success: function(msg) { $("#tr_localisation").append("<td class='title'><b>Selectionnez une localisation :</b></td><td>"+ msg +"</td>"); } } //if(selected_affaire=="void_affaire") $("#tr_localisation").hide(); //else $("#tr_localisation").show(); ); }
La ligne $("#tr_localisation").empty(); devrait bloqué le problème d'affichage
athome
Messages postés
54
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
27 septembre 2010
4
20 sept. 2010 à 12:18
20 sept. 2010 à 12:18
en fait le problème vient du navigateur, c'est un soucis de xmlhttprequest, as tu rencontré ce problème ? et sinon as tu une solution ?
Pas de problème! Au contraire, je te remercies pour ton aide!
Passes un bon WE! Moi je vais travailler à l'intégration de ma 3e liste déroulante!
Passes un bon WE! Moi je vais travailler à l'intégration de ma 3e liste déroulante!
ps: je viens de tester! Et cela fonctionne parfaitement!
T'es trop fort! ;-) Merci.
A moi de réfléchir un peu maintenant!
T'es trop fort! ;-) Merci.
A moi de réfléchir un peu maintenant!
BONJOUR ETANT NOVICE EN MATI2RE DE PROGRAMATION JE REQUIERE VOTRE AIDE POUR LE PROBLEME SUIVANT.
JE SOUHAITE L4AFFICHAGE D'IMAGE SUR MA PAGE WEB ces image ce trouve dans la repertoire aaaa dans le dossier www d'easy php, ne voulant pas surcharger ma base de donnée j'ai mis en place le lien suivant (C:/Program%20Files/EasyPHP%202.0b1/www/aaaa/image35418ff3dea57108e292ccb8397aacb4.jpg) dans ma base pour accéder a mon image, j'ai nommer IMAGE EN TEXT 120 pour lire cette image en php j'utilise le code suivant
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--Serif WebPlus 10 HTML Export-->
<!--Supports HTML 4.01-->
<meta name="Generator" content="Serif WebPlus 10.1.1.036">
<title>Inscription</title>
<META http-equiv="Page-Enter" CONTENT="RevealTrans(Duration=1.000,Transition=23)">
<?php
$link = mysql_connect("localhost", "root", "");
$bdd = mysql_select_db('poiuytreza', $link);
$query = mysql_query('select * from image', $link);
while ($row = mysql_fetch_assoc($query)) {
echo "<img src=".$row['IMAGE'].">";
}
mysql_close($link);
?>
Quand j'active mon fichier php en local a la place de mon image j'ai une icone blanche avec un triangle un rond et un carrer de couleur comme ce que l'on trouve quand on recoit un mail avec des image qui ne s'ouvre pas comment puis je faire pour avoir mon image a la place de cette icone, ou me suis je trmoper? merci d'avance de prendre du temps pour m'aider a regler mon probleme car je rame grave
JE SOUHAITE L4AFFICHAGE D'IMAGE SUR MA PAGE WEB ces image ce trouve dans la repertoire aaaa dans le dossier www d'easy php, ne voulant pas surcharger ma base de donnée j'ai mis en place le lien suivant (C:/Program%20Files/EasyPHP%202.0b1/www/aaaa/image35418ff3dea57108e292ccb8397aacb4.jpg) dans ma base pour accéder a mon image, j'ai nommer IMAGE EN TEXT 120 pour lire cette image en php j'utilise le code suivant
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--Serif WebPlus 10 HTML Export-->
<!--Supports HTML 4.01-->
<meta name="Generator" content="Serif WebPlus 10.1.1.036">
<title>Inscription</title>
<META http-equiv="Page-Enter" CONTENT="RevealTrans(Duration=1.000,Transition=23)">
<?php
$link = mysql_connect("localhost", "root", "");
$bdd = mysql_select_db('poiuytreza', $link);
$query = mysql_query('select * from image', $link);
while ($row = mysql_fetch_assoc($query)) {
echo "<img src=".$row['IMAGE'].">";
}
mysql_close($link);
?>
Quand j'active mon fichier php en local a la place de mon image j'ai une icone blanche avec un triangle un rond et un carrer de couleur comme ce que l'on trouve quand on recoit un mail avec des image qui ne s'ouvre pas comment puis je faire pour avoir mon image a la place de cette icone, ou me suis je trmoper? merci d'avance de prendre du temps pour m'aider a regler mon probleme car je rame grave
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
1 déc. 2008 à 13:57
1 déc. 2008 à 13:57
Bonjour Lundam,
- Dans ton select "_inc_select_souscatannu.php" :
$query = "SELECT id_souscatannu , catannu , sous_catannu FROM wmi_souscategorie WHERE catannu='$var' ORDER BY sous_catannu ASC LIMIT 0, 300 ";
Il est inutile de séléctionner "catannu" si tu ne t'en sers pas.... Ce n'est pas nécessaire pour la condition WHERE (tu peux lui poser la condition WHERE catannu='$var', sans avoir besoin de mettre catannu dans le select..)
- Certaines choses ne te servent à rien qui plus est. J'avais posté cela à titre d'exemple pour faire vite, repris sur l'un de mes codes.... La fonction show_form() par exemple ;-)
- Tu peux très bien faire une seule fonction... Je te post un exemple a peu près similaire.
- Tu as mis des parenthèses dans ton echo ("...."); Dans le deuxième select.....
Sans les parenthèses ça devrait marcher mieux ;-) Repasse ici si ce n'est pas le cas. J'ai modifié ton second fichier aussi, tu récupérais dans $id_souscat = catannu ?!
Le premier fichier _inc_select_catannu.php
Le second fichier : _inc_select_souscatannu.php
Dans ton fichier javascript :
et enfin le fichier html :
Cordialement.
- Dans ton select "_inc_select_souscatannu.php" :
$query = "SELECT id_souscatannu , catannu , sous_catannu FROM wmi_souscategorie WHERE catannu='$var' ORDER BY sous_catannu ASC LIMIT 0, 300 ";
Il est inutile de séléctionner "catannu" si tu ne t'en sers pas.... Ce n'est pas nécessaire pour la condition WHERE (tu peux lui poser la condition WHERE catannu='$var', sans avoir besoin de mettre catannu dans le select..)
- Certaines choses ne te servent à rien qui plus est. J'avais posté cela à titre d'exemple pour faire vite, repris sur l'un de mes codes.... La fonction show_form() par exemple ;-)
- Tu peux très bien faire une seule fonction... Je te post un exemple a peu près similaire.
- Tu as mis des parenthèses dans ton echo ("...."); Dans le deuxième select.....
Sans les parenthèses ça devrait marcher mieux ;-) Repasse ici si ce n'est pas le cas. J'ai modifié ton second fichier aussi, tu récupérais dans $id_souscat = catannu ?!
Le premier fichier _inc_select_catannu.php
<select id="select_catannu" name="select_catannu" OnChange="change_option(this)"> <option value="void">Catégorie</option> <?php include("connect.php"); $query = "SELECT id_catannu , catannu FROM wmi_categorie ORDER BY wmi_categorie.id_catannu ASC LIMIT 0, 100 "; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $id_cat = $row["id_catannu"]; $categorie = $row["catannu"]; echo "<option value='$id_cat'>$categorie</option>"; } include("disconnect.php"); ?> </select>
Le second fichier : _inc_select_souscatannu.php
<select id="select_souscat" name="select_souscat"> <option value="void">Sous catégorie</option> <?php include("connect.php"); $var=$_POST['var']; $query = "SELECT id_souscatannu, sous_catannu FROM wmi_souscategorie WHERE catannu='$var' ORDER BY sous_catannu ASC LIMIT 0, 300 "; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $id_souscat = $row["id_souscatannu"]; $souscat = $row["sous_catannu"]; echo "<option value='$id_souscat'>$souscat</option>"; } include("disconnect.php"); ?> </select>
Dans ton fichier javascript :
function change_option(strthis) { $("#div_sous_catannu").empty(); var id_cat = strthis.value; //alert(id_cat); $.ajax ( { type: "POST", url: "_inc_select_souscatannu.php", data: "var="+id_cat, success: function(msg) { $("#div_sous_catannu").append(msg); } } ); }
et enfin le fichier html :
<body> <?php echo "<div id='div_catannu'>"; include('_inc_select_catannu.php'); echo "</div>"; echo "<br />"; echo "<div id='div_sous_catannu'>"; include('_inc_select_souscatannu.php'); echo "</div>"; ?> </body>
Cordialement.
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
1 déc. 2008 à 14:03
1 déc. 2008 à 14:03
EDIT : obsolète.
Pour tous ceux qui veulent comprendre en detail comment ca fonctionne :
http://forum.phpfrance.com/faq-tutoriels/formulaires-listes-deroulantes-dynamiques-liees-t4562.html
http://forum.phpfrance.com/faq-tutoriels/formulaires-listes-deroulantes-dynamiques-liees-t4562.html
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
16 sept. 2008 à 11:18
16 sept. 2008 à 11:18
haaa ouai ... juste ça ok moi j'essayé de comprendre le principe en fait ! lol
Mais j'aurai peut-être dû voir ton code plutôt j'aurai peut-être vu :p
Tu peux aussi faire ça plutôt :
Remplace ça :
PAR SA :
A+
Gaerebut
Mais j'aurai peut-être dû voir ton code plutôt j'aurai peut-être vu :p
Tu peux aussi faire ça plutôt :
Remplace ça :
$sql2 = "SELECT distinct `localisation`". " FROM `analyses`". " WHERE `affaire` = ". $idr ."". " ORDER BY `localisation`;";
PAR SA :
$sql2 = "SELECT distinct `localisation` FROM `analyses` WHERE `affaire` = '".$idr."' ORDER BY `localisation`";
A+
Gaerebut
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
16 sept. 2008 à 20:18
16 sept. 2008 à 20:18
Ok no problème!
ben bien sûr que ça fonctionne qu'est-ce que tu crois ! MDR (je blague)
heu ben ouai sûrement tu aura d'autre problème !
Envoie moi des message privé si tu veux de mon aide, je te répondrais dans la minute ^^
A+
Gaerebut
ben bien sûr que ça fonctionne qu'est-ce que tu crois ! MDR (je blague)
heu ben ouai sûrement tu aura d'autre problème !
Envoie moi des message privé si tu veux de mon aide, je te répondrais dans la minute ^^
A+
Gaerebut
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
17 sept. 2008 à 02:47
17 sept. 2008 à 02:47
Je précise que quand je dis que je te répondrai dans la minute, c'est si tu m'envoie ça entre 9h du matin et 17h ! Puis de 20h à 00h00 je fais quelque pause entre 2 oui oui je suis un humain malgrès tout ;)
A+
Gaerebut
A+
Gaerebut
Bonjour Gaerebut!
Es-tu sûr d'être humain? Tu ne t'arrêtes jamais!!! Quels horaires!
Alors effectivement j'ai dejà des problèmes...
2 listes déroulantes dynamiques c'est bien, mais il m'en faut 1 troisième... J'ai cherché mais je bloque, je ne sais pas comment faire les boucles, ni quoi faire de mon form... Je suis paumée pour être honnête! lol ça dépasse mon petit niveau!
Peux-tu me donner un coup de pouce?
Es-tu sûr d'être humain? Tu ne t'arrêtes jamais!!! Quels horaires!
Alors effectivement j'ai dejà des problèmes...
2 listes déroulantes dynamiques c'est bien, mais il m'en faut 1 troisième... J'ai cherché mais je bloque, je ne sais pas comment faire les boucles, ni quoi faire de mon form... Je suis paumée pour être honnête! lol ça dépasse mon petit niveau!
Peux-tu me donner un coup de pouce?
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
17 sept. 2008 à 11:38
17 sept. 2008 à 11:38
Ok !
D'abord désolé j'ai 1 heure de retard! ^^
J'ai oublié de suivre ce post avec les mails ...
Donc bon ... comme je te disais au début, je comprend pas ce que tu veux faire ! LOL
T'aurai pas une capture d'écran des liste imbriqué pour voir ?STP
Merci
A+
gaerebut
D'abord désolé j'ai 1 heure de retard! ^^
J'ai oublié de suivre ce post avec les mails ...
Donc bon ... comme je te disais au début, je comprend pas ce que tu veux faire ! LOL
T'aurai pas une capture d'écran des liste imbriqué pour voir ?STP
Merci
A+
gaerebut