[RESOLU] Afficher une image à la place d'un lien hypertexte s'il y a des données à récupérer de la BDD

Eléphanteau du PHP | 15 Messages

15 juin 2020, 12:55

Salut tout le monde :lol:

Me revoilà une fois encore dans un autre problème qui empêche le bon fonctionnement de mon site :oops:
en effet, j'ai réussit à récupérer des données de ma BDD représentant des liens hypertextes ['linksrc'], sous le code suivant :

Code : Tout sélectionner

<?php if (isset ( $_POST['submit-search'])){ $search =$_POST['search']; $search = mysqli_real_escape_string ($conn, $_POST['search']); $query =("SELECT * FROM 13_mje WHERE 13_mje.titrliv LIKE '%{$search}%' OR 13_mje.id_mje LIKE '%{$search}%' GROUP BY id_mje"); $result =mysqli_query ($conn, $query ); if ($queryResult = $_POST['search']){ while ( $queryResult = mysqli_fetch_array( $result)){ ?> <tbody> <tr onclick ="location.href='<?php echo $queryResult['linksrc'];?>'" > ?>
puis à les faire afficher sous une image (représentant un lien hypertexte ) et non sous la forme "lien hypertexte ", pour gagner de l'espace .

Code : Tout sélectionner

<tr onclick ="location.href='<?php echo $queryResult['linksrc'];?>'" > <td> <?php echo '<img src = "HYP.jpg"/>'; ?></td> <td><?php echo $queryResult['idfsrc']; ?></td> <td><?php echo $queryResult['mjesrc']; ?></td> </tr>
Cela dit après l'observation des résultats je me suis rendu compte que ladite image s'affiche trjs même en absence de données dans la BDD ce qui rend la présentation désagréable à voir, j'ai donc besoin de 02 choses :
- effacer l'image en cas d'absence de données de la BDD
- faire apparaitre le lien que cache l'image dans une autre page

Tout intervention sera appréciable tant qu'elle incite à la réflexion 8-|

Avatar du membre
Mammouth du PHP | 1564 Messages

18 juin 2020, 23:17

Salut, réponse logique: si tu ne veut pas que l'image s'affiche quand il y a pas de données dans la BDD, demande si il y a pas de données (une condition PHP)

Par exemple: "if !data (rien) else (affiche)"

Le mieux serait de faire une seule condition (en fin, pas binaire je veux dire): "if data (affiche)"

"faire apparaitre le lien que cache l'image dans une autre page" moi pas comprendre, sauf peut si tu cherche une données dans la table avec GET et l'afficher dans la page, il te faudrait pour cela afficher le lien "location.href='<?php echo $queryResult['linksrc'];?>'" avec un get, soit:

location.href='<?php echo $queryResult['linksrc'];?>?id=<?php echo $queryResult['id'];?>'

Eléphanteau du PHP | 15 Messages

19 juin 2020, 16:42

Salut.

Mrci d'avoir répondu et surtout de m'avoir bien conseillé car je viens de résoudre une partie du PB, suis vraiment débutant en php et autres langages 8-) voilà le code :

Code : Tout sélectionner

<td onclick ="location.href='<?php echo $queryResult['linksrc'];?>';" target="_blank"> <?php if($queryResult['linksrc']){echo '<img src = "HYP.jpg"/>';}?></td>
Mais pour ce qui est de l'affichage du lien dans une autre page je reste stagné malgré l'emploi du

Code : Tout sélectionner

target="_blank"
.
Y a t il un autre moyen pour pouvoir le faire ? :mrgreen:

Avatar du membre
Mammouth du PHP | 1564 Messages

20 juin 2020, 11:21

Si tu veux obligatoirement passer par un lien javascript il te faut voir window.open: https://developer.mozilla.org/fr/docs/W ... indow/open

Tu peux sinon afficher ton lien en mode "hack" avec CSS en position absolute sur ton TR:

1. tu met le tr en position relative
2. tu met ta balise a en position absolute avec les paramètres top:0;right:0;bottom:0;left:0 :wink: c'est ce que j'utilise quand je dois placer un lien sur un contenu et qui est valide (du moins je penses) et plus propre que d'entourer la contenu avec ma balise <a>contenu</a>

Eléphanteau du PHP | 15 Messages

26 juin 2020, 12:00

Salut;

Merci à tous les intervenants finalement on m'a filé ce code :D

Code : Tout sélectionner

<td><?php if($queryResult['linksrc']): ?><a target=_blank" href="<?=$queryResult['linksrc']?>"><img src="HYP.jpg"></a><?php else: ?><?php endif; ?></td>
Et ça marche très bien :wink:

Avatar du membre
Mammouth du PHP | 1564 Messages

26 juin 2020, 17:38

tu peut enlever <?php else: ?> je penses pour faire juste une condition non binaire ;)