Page 1 sur 4
question sur liste deroulante dependantes ???
Posté : 16 juin 2005, 11:47
par freebug
Bonjour,
voila je voudrait ameliorer mon formulaire, car mon but est de faciliter la vie des utilisateurs (et surtout d etre sur que les valeurs rentrées soit bonne pour pas planter la base de donnée derriere

).
Pour cela j ai le formulaire suivant :
Code : Tout sélectionner
Selection cartouche:
<br><br>
<form action="imprimante2.php" name="form1" target="_self" Method="POST">
<table width="526" border="0">
<tr>
<td>
Bureau :
<select name="bureau">
<option selected> Informatique
</select>
</td>
</tr>
<tr>
<td>
Imprimante :
<select name="imprimante">
<option selected> 6400
<option> HP 1220C
<option> Phaser 8400
<option> Lexmark W812
<option> Dell A320
</select>
</td>
</tr>
<tr>
<td>
type de cartouche :
<select name="cartouche">
<option selected> ruban
<option> encre noire
<option> encre 3 couleurs
<option> kit 3 encres noires
<option> kit 6 encres noires
<option> kit 3 encres cyan
<option> kit 3 encres magenta
<option> kit 3 encres yellow
<option> kit de maintenance
<option> toner
</select>
</td>
</tr>
<tr>
<td>
quantite :
<select name="quantite">
<option selected> 1
<option> 2
<option> 3
<option> 4
<option> 5
<option> 6
<option> 7
<option> 8
<option> 9
<option> 10
</select>
</td>
</tr>
<tr>
<td width="343">
<input type="submit" name="Submit" value="Valider">
</td>
</tr>
</table>
</form>
et je voudrais que une fois que l utilisateur a selectionner l imprimante cela mette a jour la liste des cartouches disponnible en fonction de celle ci.
J ai cherche un peu sur le net mais je ne trouve que des codes dont je ne comprend pas grand chose.
je suppose que je vais avoir besoin de requete de genre
SELECT cartouche FROM la table ou sont les cartouche WHERE imprimante = '$imprimante';
et donc d'une connexion a ma base.
est ce que vous pourriez m aider ou si vous connaissez me donner l adresse d un tutorial bien explique (en francais ^^)
Posté : 16 juin 2005, 12:22
par ouckileou
tu tapes "liste déroulante dynamique" dans le formulaire de recherche, ça a déjà été traité comme problème
http://www.phpfrance.com/forums/search.php
essaye déjà de remplir une liste déroulante avec les infos d'une table de ta base, tu verras ensuite comment mettre à jour une autre liste suivant le choix de la première
Posté : 16 juin 2005, 13:50
par freebug
ou la la j ai cherche je suis tombe effectivement sur plusieurs posts qui eux renvoyaient je plus souvent sur
http://www.aidejavascript.com/article119.html
et la c'est le drame

30 mins et pas compris un mot.
(ps: c est ce truc la qu il faut faire pour avoir une seconde liste qui s actualise automatiquement par rapport a la prems ???

:(:(:()
Je veux bien faire en sorte que mes liste s incremente par rapport a ma base de données (et non a la méthode préhistorique comme j'ai fait) mais si j ai pas fait c ets que pareil je sais pas faire

Posté : 16 juin 2005, 13:58
par patbator
Hello,
t'es pas obligé de faire quelquechose d'aussi complexe qu'a l'URL que tu as cité
mais ne nous leurrons pas, il s'agira de toutes façons de jouer avec des tableaux Javascript peuplés par du PHP, + la couche d'interactivité...
C'est pas anodin mais possible.
Posté : 16 juin 2005, 14:03
par ouckileou
est-ce que tu sais remplir une liste déroulante dynamiquement ? en récupérant les valeurs de ta tables et en écrivant le code HTML dynamiquement
si non, commence par là
ensuite tu n'es pas obligé de faire très compliqué :
tu peux dire à la page de se recharger à chaque changement dans la liste, rechargement qui se fera avec le paramètre sélectionné et qui actualisera donc la deuxième liste en fonction de ce paramètre
c'est si tu veux faire les réactualisations sans recharger la page que ça devient compliqué
Posté : 16 juin 2005, 15:09
par freebug
nan nan ca me va tres bien avec des reactualisation

(si ca peut decomplexifier le truc suis preneur

)
ensuite nan je sais pas encore comment remplir une liste dynamiquement j essais on me passé un code seulement je le comprend pas trop et pour le moment il marche pas.
Le probleme c est que je developpe cette base de donnée dans le cadre d une Action Professionnelle pour mon BTS et donc je devrais la soutenir a l oral et si je comprend pas ce que j ai fait ca risque d'être dur.
en code on ma donné :
Code : Tout sélectionner
<html>
<head>
<marquee>gestion des imprimantes</marquee>
</head>
<body bgcolor="gray" text="blue">
<p align=center></s><a1>GESTION DES IMPRESSIONS</a1></s></p>
<br><br><br>
<?php
require("connect.php");
//on inclu le fichier connect.php
include("connect.php");
?>
Selection cartouche:
<br><br>
<form action="imprimante2.php" name="form1" target="_self" Method="POST">
<table width="526" border="0">
<tr>
<td>
Bureau :
<select name="bureau">
<php?
$base = "ges_imprimante";
if ($base != -1 ){
$link = connect_db($base);
$requete_util = "select service from service";
$result_ulil = "mysql_query($requete_util) or die("requete base erreur");
while ($data = mysql_fetch_array($result_util))
{
print "<option value='".$data['service']."'>".$data['service'];
}
}
else
{
?>
<div class="erreur">
aucune base n'est activée.
</div>
<br>
<br>
<?php
}
mysql_close();
?>
bon ca c est seulement pour charger automatiquement et dynamiquement ma premiere liste déroulante seulement quand je lance le truc elle est vide e j ai du mal a voir les erreurs parceque je comprend pas ce que je fais

Posté : 16 juin 2005, 15:13
par ouckileou
alors pour comprendre tu va faire pas à pas
- connexion à la base
- envoie de requêtes et récupération des données
- listage de ces données et création du code HTML dynamiquement
et pour ces étapes tu va sur PHPdebut.org où il y a plein de petits tutos dans la colonne de droite
Posté : 17 juin 2005, 09:01
par freebug
Je viens de faire tous les tutoriaux de
http://www.phpdebutant.org
et j ai rien vu sur la saisie automatique de la liste par rapport a la base.(par contre j ai compris a quoi servait certaines fonctions php que j utilisais)
personne n aurait un tutorial de cela explique simplement ?
Posté : 17 juin 2005, 09:05
par Cyrano
Pour information: Je viens de poster un nouveau sujet dans le forum des développeurs qui devrait apporter des éléments de réponses sur les lietes déroulantes liées, voir
ICI
Posté : 17 juin 2005, 09:17
par freebug
@cyrano : merci beaucoup.
Je viens peut etre de trouver mon bonheur pour ecrire automatiquement les donnée dans une liste deroulante a partir de la base :
que pensez vous de ca,
Tout d'abord connectez vous à la base de donnée ! Puis :
<form method="post" action="bidule.php3">
<table border=2>
<tr><th align=middle>Sélectionner une option : </th></tr>
<tr><td align=center><select name="variable_choisi">Choissiez votre option:
<option selected value=""> ---------- Séléction ----------
<?php
$sql="SELECT le_champ FROM la table order by le_champ";
$optio=mysql_query($sql,$db);
while($row = mysql_fetch_row($optio)) {
print "\t\t<option>".($row[0])."\n";
}
?>
</select>
</td></tr>
<tr><td align=center><input type="submit"
value="Pour choisir."></td></tr>
</table>
</form>
trouvé sous
http://www.phpindex.com/trucsetastuces/ ... element=42
Posté : 17 juin 2005, 09:25
par ouckileou
c'est le principe mais tu as oublié de fermer à chaque fois la balise <option>, et de lui donner un libellé
<option value="valeur">libellé</option>
Posté : 17 juin 2005, 09:27
par Cyrano
Ta balise option doit comporter, outre une balise de fermeture, un attribut "value" si tu veux récupérer une valeur à la sortie.
Posté : 17 juin 2005, 09:34
par freebug
ok
c'est a dire je comprend a tres bien ce que je dois mettre dans le value.
D'autre part a cette ligne
$optio=mysql_query($sql,$db);
il utilise une variable $db et je vois pas trop a quoi elle correspond, c'est le nom de la base de données ???.
ma base de donnée s'appelle ges_imprimante donc je doit ecrire :
$optio=mysql_query($sql,"ges_imprimante");
Posté : 17 juin 2005, 09:39
par Cyrano
Dans le cas que tu montres, la variable $db matérialise la connection:
$db = mysql_select_db($base);
$sql = "requete sql ...";
$option = mysql_query($sql, $db);
En clair, $option va retourner une ressource basée sur la requête ($sql) et sur la sélection de la base de données sur laquelle on travaille ($db).
Posté : 17 juin 2005, 09:44
par ouckileou
exemple :
tu as une table "Chanteurs" dans ta base, avec des infos dessus
elle est comme ça
Code : Tout sélectionner
ID | Nom | Prenom
1 | Springsteen | Bruce
2 | Knopfler | Mark
3 | Dylan | Bob
sur ton site, il y a une liste qui permet de sélectionner un chanteur
toi dans ton code tu va manipuler l'ID car c'est plus pratique, mais les gens eux ne connaissent que les noms
donc tu fais comme ceci
<select>
<option value="1">Bruce Springsteen</option>
<option value="2">Mark Knopfler</option>
<option value="3">Bob Dylan</option>
</select>
ce qui est entre les balises <option> c'est le libellé qui va permettre au visiteur de faire son choix, "value" c'est la variable que toi tu récupèreras et traiteras