8791 sujets

Développement web côté serveur, CMS

Bonjour à tous.

Ceci est mon premier post.

Sur la page index,
j' affiche 30 URL via un array() qui contient les liens, et un foreach qui les récupère

foreach($url as $key=>$value)
{
$_SESSION['key'] = $key;
$_SESSION['value'] = $value;

echo "<a href='$value'>$value</a>";
}

Ca marche.
Le visiteur click sur un des liens et la page voulue s' affiche.

Mon problème est que je voudrais "récupérer" la valeur du lien cliqué ou sa clé
(qui sont des variables) sur une deuxieme page.

Mais
- puisque la boucle foreach va jusqu'à la fin de sa lecture
- l' URL récupéré (et sa clé) est toujours le dernier de la liste.

Ceci quel que soit le lien cliqué.

Il faudrait que la page index "capte" l' URL cliqué,
la mémorise, et l' envoie ensuite à la page 2.
Comment cibler les bonnes variables ?

Merci pour toute aide éventuelle, car je tourne en rond depuis 3 semaines.

Ci-dessous, pourquoi je voudrais faire ça.

@+
Lespiegle

-------------------------------------


J' ai mis plusieurs albums photos sur un site,

L' index propose tous les pages d' albums, et le visiteur click sur un des liens qui lui sont proposés.
Pour l' instant j' ai autant de pages que d' albums.
Chaque page ouvre "son" dossier de photos.

Je voudrais n' avoir plus qu' une seule page qui récupère la variable url (ou clé)
qui alors irait ouvrir le bon dossier de photos.
Modifié par lespiegle (08 Aug 2011 - 19:32)
Bonjour à tous.

J' ai marqué le sujet "Résolu" car j' ai trouvé un paliatif,
mais la question de base reste :
"comment isoler une variable dans une boucle ?" : Aucun solution ?

J' ai du passer par un $_POST, ce qui implique un <FORM>.
Et bien sur, une mise en forme du Submit dans la feuille de style.
Le <FORM> est généré à chaque passage de la boucle Foreach.

Voici ce que j' ai fait.
Si vous trouvez du "pas propre", ou voulez l' amémiorer, je suis prenneur
( j' aurais pu faire un "print '<form method="POST"' ... etc
mais je tiens à ce que ça reste très lisible ).

@ bientôt,
Lespiegle.


<ul class="affichage_titres_albums">
<?php
foreach ($url as $key=>$value)
{
$_SESSION['value'] = $value;
$_SESSION['key'] = $key;
?>
<li class="affichage_titres_albums">

<form method="POST" action="albums.php" target="_blank">
<input type = "hidden" name="value" value="<?php echo $value; ?>">
<input type = "hidden" name="key" value="<?php echo $key; ?>">
<input type="submit" class="click_submit" value="<?php echo $value; ?>">
</form>

</li>
<?php
} // fin Foreach
?>
</ul>
Modifié par lespiegle (08 Aug 2011 - 13:39)