Aller au contenu

Code, besoin d'un coup de main svp


Théophraste

Sujets conseillés

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
Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

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).

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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 }.

Lien vers le commentaire
Partager sur d’autres sites

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 )

Lien vers le commentaire
Partager sur d’autres sites

<? 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>
<? } ?>

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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