[RESOLU] Afficher un titre en fonction d'une variable

Eléphant du PHP | 372 Messages

27 oct. 2015, 21:55

Salut à tous
Mon problème est un peu plus complexe que dans son intitulé.
Je cherche à afficher le département meme si une région n'a pas était choisis avant.

Mon code:
// Title
	// Title
	$region_id = !empty($_REQUEST['region']) ? regionByUrl($_REQUEST['region']) : NULL;
	$titre = !empty($_REQUEST['region']) ? " Sortir en ".$aRegion[$region_id] : 'Sortir près de chez moi'; // Sortir en "nom de la région"
	$titre .= !empty($_REQUEST['loisir']) ? " - ".$aLoisirs[$_REQUEST['loisir']] : NULL; // Choix du type d'évènement
	$titre .= !empty($_REQUEST['departement']) ? " en ".$aDepartement[$region_id][$_REQUEST['departement']] : NULL; // On affiche le département en fonction de la région et du choix de l'internaute
L'internaute peut arriver sur cette page sans cliquer sur une région et donc ma première ligne n'est pas fonctionel mais c'est voulu.
Je cherche juste a afficher le département lors de son choix via ma liste déroulante.


Pour info: ( mes départements )
$aDepartement = array(
							1 => array(67 => 'Bas-Rhin', 68 => 'Haut-Rhin'),
							2 => array(24 => 'Dordogne', 33 => 'Gironde', 40 => 'Landes', 47 => 'Lot-et-Garonne', 64 => 'Pyrénées-Atlantiques'), // ....
Ma liste déroulante en question:
<select name="departement" id="departement" class="selectpicker max" data-region="<?php echo $region; ?>">
                            <option value="">Votre département</option>
                            <?php echo aRegionDepartement($region, $departement); ?>
                            </select>

Mammouth du PHP | 2703 Messages

27 oct. 2015, 22:15

qu'est le contenu de $title généré par ce code ? qu'est le contenu qui devrait être généré ?

Eléphant du PHP | 372 Messages

27 oct. 2015, 22:28

Pour le coup actuellement ca donne cela :

Par défault :
<h1>29717 annonces pour sortir en</h1>

Après avoir choisis par exemple un type d'évènement via la liste déroulante "type de sortie"
<h1>2420 annonces pour sortir en <strong> Cinéma</strong></h1>

Après avoir choisis un département via la liste déroulante département
<h1>49 annonces pour sortir en <strong> Cinéma</strong> <strong> - </strong></h1>

Donc rien ne se passe pour le département, car l'utilisateur ne passe par le choix de la région sur une autre page mais je suis obligé de laisse ce choix.
Je souhaite donc pouvoir afficher le département meme si il n'a pas cliquer sur la région de la page précédente.

Si il passe par la page précédente. ( avec le choix de la région via une map interactive alors ) tout marche très bien.
Je peut communiquer le lien de la page si ca peut aider pour voir le code généré...
Merci encore

Ce code est peut etre plus parlant:
// on affiche le h1 
		$region_id = !empty($_REQUEST['region']) ? regionByUrl($_REQUEST['region']) : NULL; 
		$region_id = !empty($_SESSION['membre']['id_region']) && empty($_REQUEST['region']) ? $_SESSION['membre']['id_region'] : $region_id; 

		$h1 = $nb.' annonces pour sortir en';
		$h1 .= !empty($_REQUEST['loisir']) ? ' <strong>  '.$aLoisirs[$_REQUEST['loisir']]."</strong>" : NULL;
		$h1 .= !empty($region_id) ? "<strong> - " .$aRegion[$region_id]."</strong>" : NULL;
		$h1 .= !empty($_REQUEST['departement']) ? "  <strong> - " .$aDepartement[$region_id] [$_REQUEST['departement']]."</strong>" : NULL;
		$h1 .= !empty($du) ? ",  le <strong>" .date('d/m/Y', strtotime($du))."</strong>" : NULL;
		echo '<h1>'.$h1.'</h1>'."\n";

Mammouth du PHP | 2703 Messages

27 oct. 2015, 22:45

comme je t'ai déjà dit, il faut pouvoir accéder au nom d'un département par son numéro seul, sans forcément indiquer la région, donc pas
$aDepartement[$region_id] [$_REQUEST['departement']]
mais
$aDepartement [$_REQUEST['departement']]

Eléphant du PHP | 372 Messages

27 oct. 2015, 23:34

Donc j'ai mis en place ce que tu mas dis et testé le problème est le meme... Il ne se passe rien
Il affiche le tiret et pas le reste.... il effectue bien le trie en fonction du département la liste déroulante marche bien

mais je n'arrive pas a afficher du coup le departement
// on affiche le h1 
		$region_id = !empty($_REQUEST['region']) ? regionByUrl($_REQUEST['region']) : NULL; 
		$region_id = !empty($_SESSION['membre']['id_region']) && empty($_REQUEST['region']) ? $_SESSION['membre']['id_region'] : $region_id; 

		$h1 = $nb.' annonces pour sortir en';
		$h1 .= !empty($_REQUEST['loisir']) ? ' <strong>  '.$aLoisirs[$_REQUEST['loisir']]."</strong>" : NULL;
		$h1 .= !empty($region_id) ? "<strong> - " .$aRegion[$region_id]."</strong>" : NULL;
		$h1 .= !empty($_REQUEST['departement']) ? "  <strong> - " .$aDepartement[$_REQUEST['departement']]."</strong>" : NULL;
		$h1 .= !empty($du) ? ",  le <strong>" .date('d/m/Y', strtotime($du))."</strong>" : NULL;
		echo '<h1>'.$h1.'</h1>'."\n";	
	
	}
En essayant plusieurs trucs je vois que si je fait ($_REQUEST['departement'])
ca m'affiche bien 38 pour l'isère ca correspond maitenant moi j'aimerais que l'on voi isère et non 38... Donc jouer avec mon array

ce dernier est sous cette forme
$aDepartement = array(
							1 => array(67 => 'Bas-Rhin', 68 => 'Haut-Rhin'),
							2 => array(24 => 'Dordogne', 33 => 'Gironde', 40 => 'Landes', 47 => 'Lot-et-Garonne', 64 => 'Pyrénées-Atlantiques'),
Si j'essai $aDepartement[$_REQUEST['departement']] ca ne marche pas ....

Eléphant du PHP | 372 Messages

28 oct. 2015, 21:53

Donc j'essai toujours de m'en sortir ....
J'arrive donc à afficher le numéro de département suivant la selection de l'internaute reste juste a afficher le nom du départemant en fonction du numéro.
$nb = $req->rowCount();
	if ($req->fetchColumn() > 0) {
		
		// on affiche le h1 en fonction de la region 
		$region_id = !empty($_REQUEST['region']) ? regionByUrl($_REQUEST['region']) : NULL; 
		$region_id = !empty($_SESSION['membre']['id_region']) && empty($_REQUEST['region']) ? $_SESSION['membre']['id_region'] : $region_id; 

		$h1 = $nb.' annonces pour sortir en';
		$h1 .= !empty($_REQUEST['loisir']) ? ' <strong>  '.$aLoisirs[$_REQUEST['loisir']]."</strong>" : NULL;
		$h1 .= !empty($region_id) ? "<strong> - " .$aRegion[$region_id]."</strong>" : NULL;
		$h1 .= !empty($_REQUEST['departement']) ? '  '.$_REQUEST['departement'] : NULL; // la ligne ou j'ai fait le changement

		$h1 .= !empty($du) ? ",  le <strong>" .date('d/m/Y', strtotime($du))."</strong>" : NULL;
		echo '<h1>'.$h1.'</h1>'."\n";	
	
	}
Donc pour cela je me sert de mon array qui est sous la forme:
$aDepartement = array(
							1 => array(67 => 'Bas-Rhin', 68 => 'Haut-Rhin'),
							2 => array(24 => 'Dordogne', 33 => 'Gironde', 40 => 'Landes', 47 => 'Lot-et-Garonne', 64 => 'Pyrénées-Atlantiques'),
Donc je penser faire : ( mais ça ne marche pas... Je ne vois pas pourquoi) ...
Il me sort : Notice: Undefined offset: 67 in Pour le coup 67 correspond bien a l'Alsace...
PS: Mon fichier qui contient mon array est bien intégrer à ma page je vous rassure...
$h1 .= !empty($_REQUEST['departement']) ? '  '.$aDepartement[$_REQUEST['departement']] : NULL; // la ligne ou j'ai fait le changement

Eléphant du PHP | 372 Messages

28 oct. 2015, 22:07

Après ce long monologue je viens de voir mon erreur en postant mon message mon array est mal construit car il se repose avt tt sur le numéro des régions...
Donc en faisant un array uniquement sur les département du coup ça marche ( source trouvé sur le net ), voiçi l'array trouvé pour les départements
// présentation 1
$depts = array();
$depts["01"] = "01 - Ain";
$depts["02"] = "02 - Aisne";
$depts["03"] = "03 - Allier";
$depts["04"] = "04 - Alpes de Haute Provence";
$depts["05"] = "05 - Hautes Alpes";
$depts["06"] = "06 - Alpes Maritimes";
$depts["07"] = "07 - Ardèche";
$depts["08"] = "08 - Ardennes";
$depts["09"] = "09 - Ariège";
$depts["10"] = "10 - Aube";
$depts["11"] = "11 - Aude";
$depts["12"] = "12 - Aveyron";
$depts["13"] = "13 - Bouches du Rhône";
$depts["14"] = "14 - Calvados";
$depts["15"] = "15 - Cantal";
$depts["16"] = "16 - Charente";
$depts["17"] = "17 - Charente Maritime";
$depts["18"] = "18 - Cher";
$depts["19"] = "19 - Corrèze";
$depts["2A"] = "2A - Corse du Sud";
$depts["2B"] = "2B - Haute Corse";
$depts["21"] = "21 - Côte d'Or";
$depts["22"] = "22 - Côtes d'Armor";
$depts["23"] = "23 - Creuse";
$depts["24"] = "24 - Dordogne";
$depts["25"] = "25 - Doubs";
$depts["26"] = "26 - Drôme";
$depts["27"] = "27 - Eure";
$depts["28"] = "28 - Eure et Loir";
$depts["29"] = "29 - Finistère";
$depts["30"] = "30 - Gard";
$depts["31"] = "31 - Haute Garonne";
$depts["32"] = "32 - Gers";
$depts["33"] = "33 - Gironde";
$depts["34"] = "34 - Hérault";
$depts["35"] = "35 - Ille et Vilaine";
$depts["36"] = "36 - Indre";
$depts["37"] = "37 - Indre et Loire";
$depts["38"] = "38 - Isère";
$depts["39"] = "39 - Jura";
$depts["40"] = "40 - Landes";
$depts["41"] = "41 - Loir et Cher";
$depts["42"] = "42 - Loire";
$depts["43"] = "43 - Haute Loire";
$depts["44"] = "44 - Loire Atlantique";
$depts["45"] = "45 - Loiret";
$depts["46"] = "46 - Lot";
$depts["47"] = "47 - Lot et Garonne";
$depts["48"] = "48 - Lozère";
$depts["49"] = "49 - Maine et Loire";
$depts["50"] = "50 - Manche";
$depts["51"] = "51 - Marne";
$depts["52"] = "52 - Haute Marne";
$depts["53"] = "53 - Mayenne";
$depts["54"] = "54 - Meurthe et Moselle";
$depts["55"] = "55 - Meuse";
$depts["56"] = "56 - Morbihan";
$depts["57"] = "57 - Moselle";
$depts["58"] = "58 - Nièvre";
$depts["59"] = "59 - Nord";
$depts["60"] = "60 - Oise";
$depts["61"] = "61 - Orne";
$depts["62"] = "62 - Pas de Calais";
$depts["63"] = "63 - Puy de Dôme";
$depts["64"] = "64 - Pyrénées Atlantiques";
$depts["65"] = "65 - Hautes Pyrénées";
$depts["66"] = "66 - Pyrénées Orientales";
$depts["67"] = "67 - Bas Rhin";
$depts["68"] = "68 - Haut Rhin";
$depts["69"] = "69 - Rhône";
$depts["70"] = "70 - Haute Saône";
$depts["71"] = "71 - Saône et Loire";
$depts["72"] = "72 - Sarthe";
$depts["73"] = "73 - Savoie";
$depts["74"] = "74 - Haute Savoie";
$depts["75"] = "75 - Paris";
$depts["76"] = "76 - Seine Maritime";
$depts["77"] = "77 - Seine et Marne";
$depts["78"] = "78 - Yvelines";
$depts["79"] = "79 - Deux Sèvres";
$depts["80"] = "80 - Somme";
$depts["81"] = "81 - Tarn";
$depts["82"] = "82 - Tarn et Garonne";
$depts["83"] = "83 - Var";
$depts["84"] = "84 - Vaucluse";
$depts["85"] = "85 - Vendée";
$depts["86"] = "86 - Vienne";
$depts["87"] = "87 - Haute Vienne";
$depts["88"] = "88 - Vosges";
$depts["89"] = "89 - Yonne";
$depts["90"] = "90 - Territoire de Belfort";
$depts["91"] = "91 - Essonne";
$depts["92"] = "92 - Hauts de Seine";
$depts["93"] = "93 - Seine St Denis";
$depts["94"] = "94 - Val de Marne";
$depts["95"] = "95 - Val d'Oise";
$depts["97"] = "97 - DOM";