Bonjour,
La question est dans le titre de ce topic, est-ce possible?
J'utilise le tuto de map de Carlou qui donne celà pour afficher les icones des persos présents au meme endroit:
Code PHP :
<?php
// --- pour finir, on affiche les autres persos s'il y en a
$rsc = mysql_query("SELECT avatar FROM membres WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy']) or die(mysql_error());
while ($data = mysql_fetch_assoc($rsc)) {
// -- affichage : boucle sur les résultats
echo '<td width="100%" align="center" >';
echo '<img src="./avatars/'.$data['avatar'].'" alt="" />';
echo '</td>';
}
?>
Je voudrais pouvoir cliquer sur chaque avatar présent sur la meme case afin d'interagir ensuite directement avec: dialogues, commerce, attaque, etc...
Une image cliquable en php?
Oulalala, c'est je pense un des trucs les plus durs à faire...
(message ironique)
(C'est un des trucs que tu apprends en lisant par exemple un tuto de débutant sur le site du zéro)
C'est du HTML tout bête : il te suffit d'encadrer ton image de balise <a> pour faire un lien et dedans. Tu indiques la page d'interaction à laquelle tu passes l'identifiant du membre avec qui tu veux intéragir (pour cela, il ne faut pas oublier d'inclure cet identifiant dans la clause SELECT de ta requête).
Par exemple :
Code PHP :
<?php
$rsc = mysql_query("SELECT id, avatar FROM membres WHERE posx={$rsa['posx']} AND posy={$rsa['posy']};") or die(mysql_error());
while($data = mysql_fetch_assoc($rsc)):
?>
<td width="100%" align="center" >
<a href="interagir.php?membre=<?php echo $id; ?>"><img src="./avatars/<?php echo '.$data['avatar']; ?>" alt="" /></a>
</td>
<?php
endwhile;
?>
Sephi-Chan
Allez j'ai envi de fair emon chieur avec Sephi:
Code PHP :
<?php
$rsc = mysql_query("SELECT id, avatar FROM membres WHERE posx={$rsa['posx']} AND posy={$rsa['posy']};") or die(mysql_error());
while($data = mysql_fetch_assoc($rsc)):
?>
<td width="100%" align="center" >
<a href="interagir.php?membre=<?=$id ?>"><img src="./avatars/<?=$data['avatar] ?>" alt="" /></a>
</td>
<?php
endwhile;
?>
@Wells : <? ?> ainsi que <?= sont variables selon la configuration du serveur. <? (short tag) peut être désactivé.
Attention aux cadeaux empoisonnés

C'est tout à fait exact bien que assez anecdotique

Sephi-Chan a écrit :C'est du HTML tout bête : il te suffit d'encadrer ton image de balise <a> pour faire un lien et dedans. Tu indiques la page d'interaction à laquelle tu passes l'identifiant du membre avec qui tu veux intéragir (pour cela, il ne faut pas oublier d'inclure cet identifiant dans la clause SELECT de ta requête).
Par exemple :
Code PHP :
<?php
$rsc = mysql_query("SELECT id, avatar FROM membres WHERE posx={$rsa['posx']} AND posy={$rsa['posy']};") or die(mysql_error());
while($data = mysql_fetch_assoc($rsc)):
?>
<td width="100%" align="center" >
<a href="interagir.php?membre=<?php echo $id; ?>"><img src="./avatars/<?php echo '.$data['avatar']; ?>" alt="" /></a>
</td>
<?php
endwhile;
?>
Sephi-Chan
C'est mieux :
<a href="interagir.php?membre=<?php echo $id; ?>"><img src="./avatars/<?php echo $data['avatar']; ?>" alt="" /></a>
Exact, j'avais homis la concaténation. Merci Oxman.

'
Wells, je pense sincèrement (et la documentation me donne raison) qu'il ne sert à rien de jouer avec le feu en utilisant les short tag : on n'y gagne rien et on prend des risques.
Sephi-Chan
Faire 1 lien html pour une image cliquable n'était pas 1 problème en soi, ce que je ne savais pas, c'était cette syntaxe par rapport à l'id du joueur
<a href="interagir.php?membre=<?php echo $id; ?>">
Merci à tous

Personne n' aexpliqué à Rouge les notions de serveur et client.
Le HTML est un langage s'exécutant coté client, c'est à dire par le navigateur.
Le php est un langage s'exécutant coté serveur.
Ce que tu codes en PHP n'est que sur le serveur ! une des raisons pour laquelle son code source n'est pas visible.
Le HTML, en revanche, est visible par tous.
Les fonctions d'affichage comme echo envoient des les données au navigateur et c'est pour cela que les header() ne peuvent être utilisés à la suite...
Ce sont des explications brèves mais suffisantes pour un débutant.
J'espère ne plus revoir ce genre de question sur ce forum...