Bonjour, voila je souhaiterais lier 2 select ente eux, je voudrais faire apparaitre le 2ème select en fonction du choix du 1er select.
//Liste des regions
$region="SELECT * FROM region
ORDER BY id_region ASC";
$rregion=mysql_query($region,$cnx);
$result_region=mysql_fetch_assoc($rregion);
//Liste des departements
$departement="SELECT * FROM departement
ORDER BY id_departement ASC";
$rdepartement=mysql_query($departement,$cnx);
$result_departement=mysql_fetch_assoc($rdepartement);
<div class='select_region'>
<label>région</label>
<select name='select_region' id='select_region'>
<option value='0' >Choisissez votre région</option>
<?php
while($result_region) {
echo" <option name='select_region' value='".$result_region'id_region']."'>".$result_region'name_region']."</option> ";
$result_region=mysql_fetch_assoc($rregion);
}
?>
</select>
<?php
echo"
<select name='select_departement' id='select_departement' >";
while($result_departement){
echo"<option name='select_departement' value='".$result_departement'id_cat']."'>".$result_departement'name_departement']."</option> ";
$result_departement=mysql_fetch_assoc($rdepartement);
}
echo"
</select>
";
?>
PS j'ai deja suivi le tuto "lier plusieurs select", ce n'est pas vraiment ce que je cherche et je n'ai pas réussi à l'adapter.
Merci pour votre aide
On ne te fera pas le script ici. Surtout que tu ne dis pas en quoi la solution du tutoriel ne te va pas.
En faite comme je n'utilise pas PDO je n'ai pas trop bien compris comment l'adapter donc c'est pour ca que je voulais une method plus simple, du genre dans l'option du 2ème select il y'aurai tous les departement et en fonction du choix du 1er select on n'afficherai que les bon departement
Je viens de voir le tuto car il durait pas longtemps. Et il faut admettre que pour un débutant qui n'a pas vu les autres tutos c'est un peu compliqué :s . Il faut apprendre quand même 5 concept en même temps : le SQL** javascript** Jquery** PHP** PDO** Par contre tu devrais apprendre à utiliser PDO car MySQL a beaucoup de trou de sécurité sans compter qu'il est obsolète. Pour en revenir à ta question : Il suffit que tu fasse une requête du genre : [code] // Prend tjs des colonnes, c'est cool étoile mais c'est mal. 96 departement c'est rien. Mais fais les villes et tu vas voir que c'est autre choses. $departement = (isset($_GET['r'])) ? ' select id_cat, name_departement from Departement where idRegion = ' . mysql_escape_string($_GET['r']) : NULL; // Pareil ici // Tu me diras qu'il y a 22 régions // Moi je te réponds que tu peux avoir 22 données pour 10 000 demandes en même temps. $regions = 'SELECT id_region, name_region FROM region ORDER BY id_region '; ... ?>
<label>région</label><select name="select_region" id="select_region">
<option value="0" selected>Choisissez votre région</option>
<?php // utilise la deuxième syntaxe surtout si tu mélange du code avec des éléments visuels
// Car après c'est fouilli et on vit rien
$query_region = mysql_query($regions,$cnx);
while($res = mysql_fetch_assoc($query_region)) :
?>
<option name="select_region" value='<?php echo $res["id_region"]; ?>'><?php echo $res['name_region']; ?></option>
<?php endwhile; ?>
</select><?php if (isset($_GET['')) :
$query = mysql_query($regions, $cnx);
?><select name="select_departement" id="select_departement">
<?php while($res = mysql_fetch_assoc($query)) : ?>
<option name="select_departement" value="<?php echo $res[" id_cat>'>"<?php echo $res['name_departement'] ?>
</option>
<?php endwhile; ?>
</select><?php endif;
mysql_close($cnx); // éteint tjs ton pointeur mysql, surtout si tu l'utilise plus.
?>[/code] Voilà à peu près quoi ça doit ressembler.
Faire cela en PHP est plus contraignant qu'autre chose et va t'ammener un code quelque peu brouillon. Javascript est ici tout désigné pour une action telle que celle que tu souhaites faire. Il est vrai que cela t'ammène à apprendre un nouveau language néanmoins un framework comme Jquery se prend facilement en main et ne necéssite pas non plus de grosses bases en JS.
et un join n'irai pas?
jointure sql
et un memo que j'avais écris.
"je veux réunir la table phpbb_group avec la table phpbb_user_group qui contient group_id car phpbb_group contien aussi group_id
LEFT JOIN phpbb_groups ON phpbb_user_group.group_id = phpbb_groups.group_id"
Désolé si je suis totalement hors sujet.
@+
Pourquoi une jointure quand c'est deux trucs séparé. La premier requête prendra toujours tout.
Alors que la deuxième requête ne s'exécute que si tu as sélectionner et elle ne prend que une ligne.
Ce que tu es en train de faire c'est concaténé deux tables et ensuite les filtrés.
Alors qu'on a déjà comme élément la clé étrangère, la deuxième tables ne sert plus du tout.
Tu peux très bien prendre en toute les données avec ta jointure mais tu auras autant de ligne que de départements alors au final. Si tu sépare les deux. Tu auras 22 régions + le nombre de département de la régions sélectionnée.
Pour expliquer le leff join ne répond pas à tout. Tu remplace phpbb_group par région et phpbb_user_group par département.
Très simple. En fait, le jour ou tu veux concaténer des tables mais tu veux quand même ta clé étrangère n'existe pas vides dans certain champs car tu as besoin de toute les données de ta table. Ben cela peut répondre à ton besoin.
Bon pour ton select, effectivement tu dois rajouter du javascript.
Tu dois faire de l'ajax.
tu n'aurai pas un site ou un tuto qui explique comment faire parceque j'ai cherché et n'est rien trouvé