JeuWeb (JeuPHP) - Crée ton jeu par navigateur

Version complète : [Résolu] Image cliquable en PHP ?
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
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 10
C'est tout à fait exact bien que assez anecdotique 16
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. 34'

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


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 7
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...
URLs de référence