Page 1 sur 1

Lien conditionnel sur image

Posté : 05 mai 2005, 11:29
par GILZ
Bonjour
j'ai besoin d'aide pour ce probleme qui depasse mes compétences actuelles.
Je voudrais créer un lien conditionnel sur un vignette, qui permette en fonction d'une variable( VARcategorie) d'ouvrir une fenetre ou une autre, voila ce que j'ai pour le moment

<a href="fiche.php?VARarticle=<?php echo $row_rsArticles['ID']; ?>"><img src="../imgs_db/<?php echo $row_rsArticles['vignette']; ?>" alt="" name="vignette" border="0"></a>

ou mettre la condition et comment ?
la page a ouvrir est soit la page fiche.php soit fiche2.php ( j'y passe la variable -VARarticle- qui permet de selectionner l'article à afficher)

Merci de votre aide

Posté : 05 mai 2005, 11:36
par Cyrano
mets un nom de page dynamique: juste avant cette ligne, fais un truc du genre:
<?
$page = (condition == "x") ?  "fiche" : "fiche2";
?>
<a href="<?php echo($page); ?>.php?VARarticle=<?php echo $row_rsArticles['ID']; ?>"><img src="../imgs_db/<?php echo $row_rsArticles['vignette']; ?>" alt="" name="vignette" border="0"></a> 
S'il n'y a que deux conditions possibles, cette formulation suffira très bien et écrira soit fiche soit fiche2 selon que la condition == x est remplie ou pas.

Posté : 05 mai 2005, 13:05
par albat
Toujours fana de la programmation en une ligne,
je me permets de proposer une version réduite du code de Cyrano : ;)
<a href="<?php echo(condition=="x" ? "fiche" : "fiche2"); ?>.php?VARarticle=<?php echo $row_rsArticles['ID']; ?>"><img src="../imgs_db/<?php echo $row_rsArticles['vignette']; ?>" alt="" name="vignette" border="0" /></a>
ce qui donne, si on l'écrit fractionnée en plusieurs lignes pour une meilleure lisibilité :
<a href="<?php echo(condition=="x" ? "fiche" : "fiche2"); ?>.php?VARarticle=<?php echo $row_rsArticles['ID']; ?>">
    <img src="../imgs_db/<?php echo $row_rsArticles['vignette']; ?>" alt="" name="vignette" border="0" />
</a>

Posté : 05 mai 2005, 13:11
par Cyrano
Toujours fana de la programmation en une ligne...
Et encore, j'ai failli mettre un if()elseif() sur 6 lignes, je me suis retenu en pensant à toi albat :langue:

Posté : 05 mai 2005, 14:32
par albat
À ce niveau-là, je préconise le switch case ! ;)

Gilz, nos réponses te conviennent-elles ?

Resolu

Posté : 05 mai 2005, 22:56
par GILZ
Merci, les gars, ça marche, ça m'a pris le choux pendant un moment...encore merci.