Bonsoir
J'ai créé dans ma base de donnée, une table 'games', ou il y a les noms de jeux et la console associée.
J'ai relié une listbox à ma base de donnée, et j'aimerais savoir comment procéder pour relier cette
listbox à une autre listbox, afin que quand je choisisse telle console dans la première listbox, j'ai tel jeu dans la 2éme listbox
Voici le code :
$choix = isset($_POST'choix']) ? $_POST'choix'] : '';
// Connexion à la base de donnée
mysql_connect(DB_HOST, DB_LOGIN, DB_PASS) or die('<h1>Connexion au serveur impossible !</h1>');
mysql_select_db(DB_BDD) or die('<h1>Connexion impossible à la base</h1>');
// Début du script
$query = mysql_query("SELECT * FROM games ORDER BY titre;") or die (mysql_error());
if ($query) {
echo '<form method="post">';
echo '<select name="choix">';
while ($array = mysql_fetch_assoc($query)) {
if ($choix == $array"id"]) {
echo '<option value="' . $array'id'] . '" selected>' . $array'titre'] . '</option>';
} else {
echo '<option value="'.$array'id'] . '">' . $array'titre'] . '</option>';
}
}
echo '</select>';
echo '<input type="submit" value="OK">';
echo '</form>';
echo '</br>';
D'avance merci, Atome.
mh, je pense que si tu maitrise pas encore php, tu devrais essayer soit de simplifier ce que tu veux faire (une page avec le formulaire pour les consoles) puis une fois la console sélectionnée, aller sur la page pour selectionner le jeux...
une fois que tu auras découvert plein d'autres choses fantastiques en php et javascript (ajax etant du javascript) tu pourras t'essayer à faire ce genre de choses parce que là, on va te filler un code, tu va le coller, ca va marcher et tu n'auras rien appris (mon point de vue)
il faut que tu utilises javascript (jquery pour que ce soit plus simple)
quand la premiere listbox (qui s'appelle un select ou combobox), change, il faut que tu change le contenu de la deuxieme...
a partir de là, ce que je ferais : toujours avoir le premier select rempli, donc tu fais toujours ta requete qui récupère le nom des consles
et là tu as deux choix : soit tu récupères toujours la liste de tous les jeux par console dans différentes variables, et tu changes la liste du deuxieme select en fonction du premier ;
soit, tu fais de l'ajax et tu récupère la liste des jeux correspondant a la console dès que tu changes de valeur dans le premier select puis tu recharge le deuxieme select...
Ok merci, je pensais que c'était possible en php, pourrez tu me faire une petite démo pour que je vois comment commencer ?
jQuery(function($){
$('#taPremiereListe').change(function(){
// Ici tu changes la liste, par contre je te donne pas tout le code, il me faudrait un peu de temps pour le concevoir etant donné que je ne l'ai jamais fait mais je pense que tu trouveras facilement comment remplir une liste grâce à JS (tutos sur le net et un peu de logique ou d'adaptation des scripts ;))
});
});
Merci à vous deux.
Flohw, j'ai regardé de ce coté, mais je n'avance pas.
Bahamut, j'ai vu cette page, même en recopiant le code et en insérant le code sql, ca ne marche pas.
Etant débutant en php, j'essaye de comprendre le code mais ça n'est pas encore dans mes compétences.
J'ai parcouru nombre de site mais j'avoue ne pas avancer sur ce coup la.
Apparemment c'est possible de réaliser 2 combobox liées en php mais cela inclu de recharger la page, chose qu'on ne ferait pas avec ajax ou javascript. Bref je rame.
J'ai fais ce code mais ça ne marche pas :
// Configuration de la connexion à la base de données
require "../inc/config.php";
// Connexion à la base de donnée
mysql_connect(DB_HOST, DB_LOGIN, DB_PASS) or die('<h1>Connexion au serveur impossible !</h1>');
mysql_select_db(DB_BDD) or die('<h1>Connexion impossible à la base</h1>');
$console = isset($_console'console']) ? $_console'console'] : '';
$jeux = isset($_POST'jeux']) ? $_POST'jeux'] : '';
echo '<form method="console"> ';
echo '<select name="console" size="1" onChange="window.location=document.testform.websites.options[document.testform.websites.selectedIndex].value">' ;
echo '<option value="PS3">PS3</option> ';
echo '<option value="Xbox">Xbox</option> ';
echo '<option value="WII">WII</option> ';
echo '</select> ';
echo '<input type="submit" value="OK">';
echo '</form>';
// Affichage du lien choisi
// Début du script
$query = mysql_query("SELECT * FROM games WHERE console='$console';") or die (mysql_error());
if ($query) {
echo '<form method="post">';
echo '<select name="jeux">';
while ($array = mysql_fetch_assoc($query)) {
if ($jeux == $array"id"]) {
echo '<option value="' . $array'id'] . '" selected>' . $array'titre'] . '</option>';
} else {
echo '<option value="'.$array'id'] . '">' . $array'titre'] . '</option>';
}
}
echo '</select>';
echo '<input type="submit" value="OK">';
echo '</form>';
echo '</br>';
J'ai trouvé un script ICI
J'aurais voulu savoir de quelle manière on peut récupérer les informations de la seconde liste.
Actuellement il n'y a que le nom de la région, mais si je veux rajouter d'autres colonnes dans la table, comment les afficher en fonction de notre choix ?