Aller au contenu

Sujets conseillés

Posté (modifié)

J'ai besoin d'un coup de main :-).

<? if ($ad_display == 'live') { ?>
<td class="contentfont" nowrap style="padding-right: 10px;"><img src="themes/<?=$setts['default_theme'];?>/img/arrow.gif" align="absmiddle" border="0" hspace="5"> <a href="javascript:history.back()">
<?=MSG_BACK_TO_HP;?></a></td>
<? if (!empty($search_url)) { ?>
<td class="contentfont" nowrap style="padding-right: 10px;">| <a href="<?=$search_url;?>"><?=MSG_BACK_TO_SEARCH_PAGE;?></a></td>
<? } ?>
<? } ?>

Ce code donne 2 liens, le 2ème n'apparait que si on accède à la page après avoir utilisé la recherche, mais alors, le premier en history.back() donne "La page Web a expiré".

Bref, j'aimerais que si le deuxième lien est affiché, alors le premier ne soit pas affiché (puisque ne fonctionnant pas), qui pourrait me dire comment faire ?

Grand merci d'avance !

Modifié par Théophraste
Posté

Il faudrait mettre quelque chose là <? if ($ad_display == 'live' XXX) { ?> non ?

Pour faire en sorte que si ($search_url) n'est pas nul alors le lien 1 ne s'affiche pas.

Ici si on vient à la page web via la recherche, $search_url n'est pas nul/vide, donc le lien 2 s'affiche, que faire pour que toujours dans ce cas, le lien 1 ne s'affiche pas ?

Un test conditionnel Switch sur ($search_url) ?

Ou un "truc" là <? if ($ad_display == 'live') mais pas si (!empty($search_url)) { ?>

Comment écrire "mais pas si" ?

Je ne connais rien en code, help me :-) !

Grand merci d'avance !

Posté

Salut Théophraste.

Je suis aussi bon en PHP que le Pape ne l'est en Kamasutra, mais en théorie il suffirait simplement de ne pas inclure le 2ème if dans le premier, et juste de les mettre l'un à la suite de l'autre.

Tente ça et dis-nous ce qu'il en est ;)

Posté

Bonjour,

Je contrasterai avec les histoires de Pape de Dudu. En effet, tu as raison dans ton deuxième message, il faut utiliser un "mais pas si" dans ton premier if. Sache que les deux connecteurs logiques hyper-utiles dans la vie (électronique, informatique, etc.) sont le ET et le OU.

Si je comprends bien ton code, tu veux :

- pour afficher le premier lien, que $ad_display soit à "live" ET que $search_url soit vide ? remarque mon ET dans ma phrase !

Le code exact est donc :

if(($ad_display == 'live') AND (empty($search_url)))

Ensuite, pour afficher le deuxième lien, il faut en effet le faire après la sortie du if (c'est là que le Pape euuh Dudu a raison.

Ta structure globale est donc :

if(($ad_display == 'live') AND (empty($search_url)))
{
// J'affiche mon premier lien
}
elseif(!empty($search_url))
{
// J'affiche mon deuxième lien
}

Là, ton œil observateur se dit : "mais pourquoi il met elseif à la place de if ?", eh bien je réponds "pour l'optimisation !".

En effet, le elseif permet de ne vérifier la condition que si le if d'avant n'a pas été vérifié. Si tu mets if, le programme calculera à chaque fois si $search_url est vide. Avec le elseif, il ne vérifiera que le $search_url est vide uniquement si la condition (($ad_display == 'live') AND (empty($search_url)) n'avait pas été vérifiée.

(Je suis pas clair, mais j'y arrive pas le dimanche matin).

Posté (modifié)

Coucou, merci de vous intéresser à mon cas :-).

Bon, essai pas concluant, juste car étant incompétant en php, j'ai du mal comprend vos suggestions ;-).


<? if(($ad_display == 'live') AND (empty($search_url))) { ?>

<td class="contentfont" nowrap style="padding-right: 10px;">
<img src="themes/<?=$setts['default_theme'];?>/img/arrow.gif" align="absmiddle" border="0" hspace="5">
<a href="javascript:history.back()">
<?=MSG_BACK_TO_HP;?></a></td>

<? elseif (!empty($search_url)) { ?>

<td class="contentfont" nowrap style="padding-right: 10px;">| <a href="<?=$search_url;?>">
<?=MSG_BACK_TO_SEARCH_PAGE;?></a></td>

<? } ?>

C'est tout ces ? / ?> / { ?> qui pour moi son juste de la déco qui pose peut être pb ;-).

Avec ça, j'ai un "syntax error, unexpected T_ELSEIF..."

Si au lieu du elseif, je laisse le if, j'ai bien le premier lien quand je viens à la page via les liens, mais j'ai rien du tout si j'arrive à la page via la recherche.

Merci d'avance pour vos nouvelles suggestions :-).

Modifié par Théophraste
Posté

J'avais oublié de virer le code que j'avais copié-collé en fin de mon message...

(Le dimanche matin, je le dis !)

Dans ton code, là, il manque le } avant la fin du if. Donc avant ton elseif, il faut rajouter un }.

Posté

Oki, je m'y prends tjs mal :(


<? if(($ad_display == 'live') AND (empty($search_url))) { ?>

<td class="contentfont" nowrap style="padding-right: 10px;">
<img src="themes/<?=$setts['default_theme'];?>/img/arrow.gif" align="absmiddle" border="0" hspace="5">
<a href="javascript:history.back()"><?=MSG_BACK_TO_HP;?></a></td>

JE DOIS METTRE QUOI ICI ?

<? elseif (!empty($search_url)) { ?>

<td class="contentfont" nowrap style="padding-right: 10px;">|
<a href="<?=$search_url;?>"><?=MSG_BACK_TO_SEARCH_PAGE;?></a></td>

<? } ?>
<? } ?>
JE LAISSE LES DEUX LIGNES CI DESSUS ?

Merci pour l'aide, très sympa, surtout un dimanche matin (13h25, plus que 35 min avant la sieste :P )

Posté

<? if(($ad_display == 'live') AND (empty($search_url))) { ?>

<td class="contentfont" nowrap style="padding-right: 10px;">
<img src="themes/<?=$setts['default_theme'];?>/img/arrow.gif" align="absmiddle" border="0" hspace="5">
<a href="javascript:history.back()"><?=MSG_BACK_TO_HP;?></a></td>


<? } elseif (!empty($search_url)) { ?>

<td class="contentfont" nowrap style="padding-right: 10px;">|
<a href="<?=$search_url;?>"><?=MSG_BACK_TO_SEARCH_PAGE;?></a></td>
<? } ?>

Posté (modifié)

ça marche !!!

Grand merci Dadou, Grand merci sarc, et à Dudu pour sa participation !

Et au forum pour ces rencontres :-).

Amicalement, Théo'.

Modifié par Théophraste

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...