Gestion tableau multidimensionnel php

Résolu/Fermé
stellou74 Messages postés 22 Date d'inscription mardi 18 février 2014 Statut Membre Dernière intervention 10 avril 2014 - 18 févr. 2014 à 19:30
stellou74 Messages postés 22 Date d'inscription mardi 18 février 2014 Statut Membre Dernière intervention 10 avril 2014 - 19 févr. 2014 à 18:34
Bonjour,

J'apprends actuellement le PHP et j'essaye de réaliser un minisite avec une fonction permettant de changer le contenu de la page depuis un menu. Mon code fonctionne bien avec la variable 'nom' de mon tableau, mais je ne parviens pas à afficher l'image et le texte et je n'arrive pas à faire en sorte que le titre et le texte d'accueil soient sur la page et disparaissent quand on clique sur les liens. Voici mon code:

<?php
$page_titre = 'Mini-site des saisons'; // variable de titre
$texte_accueil ='Bienvenue sur le mini-site consacré aux quatre saisons. Utilisez le menu de navigation pour consulter les pages du site.';
$saisons = array (
	'0' => array ('nom' => 'Printemps', 'image' => 'printemps_mini.jpg', 'texte' => 'Le printemps (du latin primus, premier, et tempus, temps, cette saison marquant traditionnellement le
		renouveau dans la nature) est l\'une des quatre saisons des zones tempérées, suivant l\'hiver et précédant l\'été. Cette demi-saison correspond aux mois de mars, avril, mai et juin
		dans l\'hémisphère nord.'),
	'1' => array ('nom' => 'Eté', 'image' => 'ete_mini.jpg', 'texte' => 'L\'été est l\'une des quatre saisons des zones tempérées et polaires, traditionnellement perçue
		comme la plus chaude, soit les mois de juin, juillet, août (voire septembre) dans l\'hémisphère nord.'),
	'2' => array ('nom' => 'Automne', 'image' => 'automne_mini.jpg', 'texte' => 'L\'automne est l\'une des quatre saisons des zones tempérées. Cette saison se situe entre l\'été et l\'hiver,
		correspond aux mois de septembre, octobre, novembre et décembre dans l\'hémisphère nord.'),
	'3' => array ('nom' => 'Hiver', 'image' => 'hiver_mini.jpg', 'texte' => 'L\'hiver est l\'une des quatre saisons des zones tempérées, traditionnellement perçue comme la plus froide,
		soit les mois de décembre, janvier, février et mars dans l\'hémisphère nord.')
);
?>

<html>
<head>
	<meta charset="iso-8859-1">
</head>
<body>
	<ul>
	<?php
 
		foreach($saisons AS $saison)
		{
			echo '<li><a class="menu" title="'.$saison['nom'].'" href="minisite.php?nom='.$saison['nom'].
		'">'.$saison['nom'].'</a></li>';

		}

	?>
	</ul>
	
	<?php if (isset($_GET["nom"]))
		{	
			$saison['nom'] = $_GET['nom'];
			$saison['image'] = $_GET['nom'];
			$saison['texte'] = $_GET['nom'];
			echo '<title>' . $saison['nom'] . '</title>';
			echo '<h1>' . $saison['nom'] . '</h1>';
			echo '<h2 id="'. $saison['nom']. '">' . $saison['nom'] . '</h2>';
			echo '<img src="' . $saison['image'] .'" />';
			echo '<p>' . $saison['texte'] . '</p>';
		}
		else {
			$page_titre = $_GET["titre"]; 
			$texte_accueil = $_GET["titre"];

			echo '<title>' . $page_titre . '</title>';
			echo '<h1>' . $page_titre . '</h1>';
			echo '<p>' . $texte_accueil . '</p>';
		}?>
</body>
</html>


Merci de votre aide bonne soirée !
A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
19 févr. 2014 à 10:49
Salut,

Voici quelques améliorations à apporter pour réaliser ce que tu attends :

1. Utilises les clés de ton tableau (0, 1, 2, 3) à la place du nom de la saison dans les urls.

2. Vérifie que la clé envoyé par l'utilisateur (en cliquant sur le lien) correspond bien à une clé existante pour éviter les erreurs.

3. Utilises ensuite cette clé pour récupérer les informations de la saison et les afficher.

Par exemple :

<ul>
	<?php
 
		foreach($saisons AS $cle => $saison)
		{
                        // on utilise la clé (identifiant) de la saison
			echo '<li><a class="menu" title="'.$saison['nom'].'" href="minisite.php?id='.$cle.
		'">'.$saison['nom'].'</a></li>';

		}

	?>
	</ul>
	
	<?php 
        // on vérifie si l'utilisateur à cliqué sur un lien et que l'id envoyé existe
        if (isset($_GET['id']) && in_array($_GET['id'], array_keys($saisons)))
		{	
                        // si l'id correspond à une saison du tableau, on récupère les infos de cette saison
                        $saison = $saisons[$_GET['id']];
			echo '<title>' . $saison['nom'] . '</title>';
			echo '<h1>' . $saison['nom'] . '</h1>';
			echo '<h2 id="'. $saison['nom']. '">' . $saison['nom'] . '</h2>';
			echo '<img src="' . $saison['image'] .'" />';
			echo '<p>' . $saison['texte'] . '</p>';
		}
		else {
                        // sinon on affiche la page d'accueil
			echo '<title>' . $page_titre . '</title>';
			echo '<h1>' . $page_titre . '</h1>';
			echo '<p>' . $texte_accueil . '</p>';
		}?>



Bonne journée
2
stellou74 Messages postés 22 Date d'inscription mardi 18 février 2014 Statut Membre Dernière intervention 10 avril 2014 1
19 févr. 2014 à 18:34
Merci beaucoup cela fonctionne parfaitement !
1