Minisite avec tableau multidimensionnel

Répondre
AdelineH
le 04/11/2013 à 22:27
AdelineH
Bonjour,

Je suis débutante en PHP et je tente de réaliser un minisite de 4 pages avec 1 seul fichier .php. L'idée est d'avoir un contenu pour l'index et de pouvoir appeler un contenu différent pour chacun des 4 liens du menu. J'ai donc créé mon tableau multidimensionnel avec 4 tableaux reprenant chacun une variable "nom", une variable "image" et une variable "texte".

J'ai ensuite créé mon menu à l'aide de la boucle Foreach et de la méthode _$GET. Mais je sèche quant à l'affichage des contenus en fonction du lien sur lequel on clique dans le menu. Voici mon code actuel:

<?php
$saisons = array (
0 => array ('nom' => 'printemps', 'image' => 'printemps.jpg', 'texte' => 'Le printemps (du latin primus, premier, et tempus, temps, cette saison marquant traditionnellement le renouveau dans la nature) est 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' => 'été', 'image' => 'ete.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 et août (voire septembre) dans l\'hémisphère nord.'),
2 => array ('nom' => 'automne', 'image' => 'automne.jpg', 'texte' => 'L\'automne est l\'une des quatre saisons des zones tempérées. Cette saison, qui 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.jpg', 'texte' => 'L\'hiver est l\'une des quatres 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.')
);

?>


<?php

foreach($saisons AS $saison)
{
echo '<li><a class="menu" title="'.$saison['nom'].'" href="minisite.php?id='.$saison['nom'].
'">'.$saison['nom'].'</a></li>';

}
?>


<?php
foreach($_GET as $id => $saison['nom']) {

echo '<title>' .$saison['nom'] . '</title>';
echo '<h1>' .$saison['nom'] . '</h1>';
echo '<img src="' .$saison['image'] . '">';
echo '<p>' . $saison['texte'] .'</p>';
}
?>



Merci d'avance pour votre aide.

Adeline
AdelineH
LupusMic
le 05/11/2013 à 11:55
LupusMic
Attention au vocabulaire : $_GET n'est pas une méthode, c'est une variable superglobale qui indexe les paramètres passés par la request URI.

Attention à bien utiliser des fonctions de traduction de ton contenu vers le format de sortie.
<?php printf('<li><a class="menu" title="%1$s" href="minisite.php?id=%1$s">%1$s</a></li>', htmlentities($saison['nom'], ENT_NOQUOTES);


Pourquoi utitilises-tu la clé 'nom' de ton tableau $saison pour y assigner la valeur des éléments itérés de $_GET ?
foreach($_GET as $id => $saison['nom']) {


J'ai l'impression que tu crois que ça permet de sélectionner la ligne dont la colonne 'nom' a la valeur de ton $_GET[$id].

<?php
$current_saison = null;
foreach($saisons as $saison)
if($saison['name'] === $_GET['id'])
{
$current_saison = $saison;
break;
}
// à ce point, $current_saison contiendra la saison sélectionnée, ou null ; évidement, il y a d'autres cas à prévoir, mais c'est un début ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours