Lien conditionnel sur image

GILZ
Invité n'ayant pas de compte PHPfrance

05 mai 2005, 11:29

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

Mammouth du PHP | 19672 Messages

05 mai 2005, 11:36

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 mai 2005, 13:05

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>

Mammouth du PHP | 19672 Messages

05 mai 2005, 13:11

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:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 mai 2005, 14:32

À ce niveau-là, je préconise le switch case ! ;)

Gilz, nos réponses te conviennent-elles ?

GILZ
Invité n'ayant pas de compte PHPfrance

05 mai 2005, 22:56

Merci, les gars, ça marche, ça m'a pris le choux pendant un moment...encore merci.