1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
<form action="recherche.php" name="recherche" method="post">
<table id="form" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<?php
// Créer le tableau des secteurs de recherche (valeurs identiques au champ 'secteur' de la table 'groupemot')
$tableau = array (
"Activité" => "Activité, spécialité",
"Produit" => "Produit, service",
"Matériel" => "Matériel, équipement"
);
// Afficher la liste des secteurs de recherche
$html = "<p class='titreselect'>Recherche par :</p>\n";
$html .= "<select class='select170' name='secteur' onchange='this.form.submit()'>\n";
foreach ($tableau as $secteur => $titre) {
// Après la soumission du formulaire, sélectionner le secteur choisit
if (isset($_POST["secteur"]) && $_POST["secteur"] == $secteur){
$html .= "<option value='$secteur' selected='selected'>$titre</option>\n";
$choix_secteur = $_POST["secteur"]; // On récupère la sélection pour la requête suivante
}
// Sinon afficher la liste complète
else {
$html .= "<option value='$secteur'>$titre</option>\n";
}
}
$html .= "</select>\n";
// Afficher la liste des mots-clés (et leur groupe respectif) liés à la liste 'secteur'
// Avant la soumission du formulaire, choisir le secteur 'Activité' comme valeur par défaut
if (!isset($_POST["secteur"])) $choix_secteur = "Activité";
$sql = "
SELECT DISTINCT C.id_groupe, C.id_mot, ordre, nom_groupe, nom_mot
FROM groupemot G, choixmot C, mot M
WHERE G.secteur = '$choix_secteur'
AND G.id_groupe = C.id_groupe
AND C.id_mot = M.id_mot
ORDER BY 3, 4, 5
";
$result = mysql_query($sql) or die("Exécution de la requête 'mot' impossible !");
$val = ""; // Prévenir le changement de groupe de mots-clés
$html .= "<p class='titreselect'>Rubrique :</p>\n";
$html .= "<select class='select170' name='mot' onchange='this.form.submit()'>\n";
$html .= "<option class='toutafficher' value=0>Sélectionner une rubrique</option>\n";
while ($ligne = mysql_fetch_array($result, MYSQL_ASSOC)) {
extract($ligne);
// Afficher le nom du groupe avec un style css à chaque changement de groupe
if ($val != $id_groupe) {
if (isset($_POST["mot"]) && $_POST["mot"] == "G$id_groupe"){
$html .= "<option class='groupe' value='G$id_groupe' selected='selected'>$nom_groupe</option>\n";
$choix_groupe = substr($_POST["mot"],1); // On récupère $id_groupe sans le préfixe G pour la requête suivante
}
else {
$html .= "<option class='groupe' value='G$id_groupe'>$nom_groupe</option>\n";
}
$val = $id_groupe;
}
// Afficher les mots-clés sans style css
if (isset($_POST["mot"]) && $_POST["mot"] == "M$id_mot"){
$html .= "<option value='M$id_mot' selected='selected'>$nom_mot</option>\n";
$choix_mot = substr($_POST["mot"],1); // On récupère $id_mot sans le préfixe M pour la requête suivante
}
else {
$html .= "<option value='M$id_mot'>$nom_mot</option>\n";
}
}
$html .= "</select>\n";
// Afficher la liste des régions liées à la liste 'mot'
// Si le critère est un groupe de mots-clés
if (isset($choix_groupe)){
$sql = "
SELECT DISTINCT code_dept, departement, region, pays
FROM choixmot C, localite L
WHERE C.id_groupe = '$choix_groupe'
AND C.id_region = L.id_region
ORDER BY 4, 3, 1
";
}
// Si le critère est un mot-clé
if (isset($choix_mot)){
$sql = "
SELECT DISTINCT code_dept, departement, region, pays
FROM choixmot C, localite L
WHERE C.id_mot = '$choix_mot'
AND C.id_region = L.id_region
ORDER BY 4, 3, 1
";
}
$result = mysql_query($sql) or die("Exécution de la requête 'region' impossible !");
$val = ""; // Prévenir le changement de region
$html .= "<p class='titreselect'>Région :</p>\n";
$html .= "<select class='select170' name='region' onchange='this.form.submit()'>\n";
$html .= "<option class='toutafficher' value=0>Sélectionner une région</option>\n";
while ($ligne = mysql_fetch_array($result, MYSQL_ASSOC)) {
extract($ligne);
// Afficher la liste des régions que si un critère de la liste 'mot' existe
if (isset($choix_groupe) or isset($choix_mot)){
// Afficher à chaque changement, le nom de la région avec un style css personnalisé
if ($val != $region) {
if (isset($_POST["region"]) && $_POST["region"] == "$region"){
$html .= "<option class='groupe' value='$region' selected='selected'>$region</option>\n";
$choix_region = $_POST["region"]; // On récupère la sélection pour la requête suivante
$val = $region;
}
else {
$html .= "<option class='groupe' value='$region'>$region</option>\n";
$val = $region;
}
}
// Afficher les départements sans style css
if ($pays == "France") {
if (isset($_POST["region"]) && $_POST["region"] == "$code_dept"){
$html .= "<option value='$code_dept' selected='selected'>$code_dept $departement</option>\n";
$choix_dept = $_POST["region"]; // On récupère la sélection pour la requête suivante
}
else {
$html .= "<option value='$code_dept'>$code_dept $departement</option>\n";
}
}
// Afficher les pays étrangers sans style css
if ($pays != "France") {
if (isset($_POST["region"]) && $_POST["region"] == "$pays"){
$html .= "<option value='$pays' selected='selected'>$pays</option>\n";
$choix_pays = $_POST["region"]; // On récupère la sélection pour la requête suivante
}
else {
$html .= "<option value='$pays'>$pays</option>\n";
}
}
}
}
$html .= "</select>\n";
mysql_free_result($result); // Libère le résultat de la mémoire
print $html;
?>
</td>
</tr>
</table>
</form> |
Partager