Votre question

[PHP] Aide pour lien dans un title

Tags :
  • Javascript
  • Programmation
Dernière réponse : dans Programmation
8 Septembre 2007 14:29:50

Bonjour a tous,
Je fait actuellement une map pour un jeux,
Tout fonctionne, mais j'aurai besoins d'un petit coup de main, pour mettre un lien dedan
Pour info, j'ai creer une info bulle (tooltip nn?), qui me marque les coordoné de lemplacement si la case est vide, et le pseudo si la case est habité,
Je voudrai ajouté un lien genre, Ataquer, qui se trouve dans l'info bulle, donc dans le tittle,
Code actuel :

  1. if(empty($carto[$x][$y]['id'])) { //Case vide
  2. ?><a<img src="style/image/herbe20.png" width="20" height="20" title="(<? print $x.':'.$y; ?>)"></img><?
  3. } else { //Case occupée
  4. ?><img src="style/image/ruche20.png" width="20" height="20" title="<? print $carto[$x][$y]['pseudo'].'('.$x.':'.$y; ?>)"></img><?
  5. }

Autres pages sur : php aide lien title

Anonyme
8 Septembre 2007 15:41:35

Alors en fait il ne faut pas utiliser le title, mais plutot un javascript qui va creer un bloc affiché à côté de ta souris, dans lequel tu va avoir tes liens...
Essaye de regarder sur des site de scripts et/ou cours en javascript
a c 232 L Programmation
8 Septembre 2007 18:12:39

En effet, le title est pas forcément pratique, et met quelques secondes à apparaitre.
De plus, il me semble qu'IE ne lit pas les title par défaut, mais lit les alt. Donc faudrait mettre et alt, et title.
Bref...

Le plus simple serait de regarder au niveau de tooltips à faire soi-même, comme indiqué par xaebhal.
Regarde dans google avec une recheche "tooltip", tu devrais avoir ce que tu veux je pense. Tu dois pouvoir trouver beaucoup de scripts différents.
Contenus similaires
Pas de réponse à votre question ? Demandez !
8 Septembre 2007 21:26:18

Voila, apparement, il faudrait modifié mon fichier bulle.js

Que dois-je rajouter pour mettre un lien dans cette info bulle :) 

  1. addEvent(window, "load", initialiserBulles);
  2.  
  3. var lesBalises = new Array;
  4. lesBalises[0] = "a";
  5. lesBalises[1] = "img";
  6. lesBalises[2] = "b";
  7. lesBalises[3] = "p";
  8.  
  9. var XHTMLNS = "<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>";
  10. var CURRENT_NICE_TITLE;
  11.  
  12. function initialiserBulles() {
  13. if (!document.createElement || !document.getElementsByTagName) return;
  14. // add namespace methods to HTML DOM; this makes the script work in both
  15. // HTML and XML contexts.
  16. if(!document.createElementNS){
  17. document.createElementNS = function(ns,elt) {
  18. return document.createElement(elt);
  19. }
  20. }
  21.  
  22. for(var i = 0; i < lesBalises.length; i++){
  23. var balises = document.getElementsByTagName(lesBalises[i]);
  24. for (var ti = 0; ti < balises.length ; ti++) {
  25. var balise = balises[ti];
  26. if (balise.title) {
  27. ajouterBulle(balise);
  28. }
  29. }
  30. }
  31.  
  32. }
  33.  
  34. function ajouterBulle(elem){
  35. elem.setAttribute("bulle",elem.title);
  36. elem.removeAttribute("title");
  37.  
  38. // on ajoute des evenements sur le lien
  39. addEvent(elem,"mouseover",montrerBulle);
  40. addEvent(elem,"mouseout",cacherBulle);
  41. addEvent(elem,"focus",montrerBulle);
  42. addEvent(elem,"blur",cacherBulle);
  43. }
  44.  
  45. function donnePosition(oLink) {
  46. if( oLink.offsetParent ) {
  47. for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent ) {
  48. posX += oLink.offsetLeft;
  49. posY += oLink.offsetTop;
  50. }
  51. return [ posX, posY ];
  52. } else {
  53. return [ oLink.x, oLink.y ];
  54. }
  55. }
  56.  
  57. function montrerBulle(e) {
  58. // si c'est le titre est déjà rempli on le cache
  59. if (CURRENT_NICE_TITLE) cacherBulle(CURRENT_NICE_TITLE);
  60.  
  61. var elem;
  62. if (window.event && window.event.srcElement) {
  63. elem = window.event.srcElement
  64. } else if (e && e.target) {
  65. elem = e.target
  66. }
  67.  
  68. var _textBulle = elem.getAttribute("bulle");
  69. if(_textBulle.charAt(0) == '$'){
  70. _textBulle = eval(_textBulle.substring(1));
  71. } else {
  72. _textBulle = "<p>" + _textBulle + "</p>";
  73. }
  74.  
  75.  
  76. // on ajoute à une div un noeud de texte contenant ce qu'il faut
  77. var d = document.createElementNS(XHTMLNS,"div");
  78. d.className = "bulle";
  79. d.innerHTML = _textBulle;
  80. d.style.position = 'absolute';
  81.  
  82. mpos = donnePosition(elem);
  83.  
  84. mx = mpos[0];
  85. my = mpos[1];
  86.  
  87. d.style.left = (mx + 15) + 'px';
  88. d.style.top = (my + 35) + 'px';
  89.  
  90. var largeurDiv = d.width;
  91.  
  92. if (window.innerWidth && ((mx+largeurDiv) > window. innerWidth)) {
  93. d.style.left = (window.innerWidth - largeurDiv - 25) + "px";
  94. }
  95. if (document.body.scrollWidth && ((mx + largeurDiv) > document.body.scrollWidth)) {
  96. d.style.left = (document.body.scrollWidth - largeurDiv - 25) + "px";
  97. }
  98.  
  99. document.getElementsByTagName("body")[0].appendChild(d);
  100.  
  101. CURRENT_NICE_TITLE = d;
  102. }
  103.  
  104. function cacherBulle(e) {
  105. if (!document.getElementsByTagName) return;
  106. if (CURRENT_NICE_TITLE) {
  107. document.getElementsByTagName("body")[0].removeChild(CURRENT_NICE_TITLE);
  108. CURRENT_NICE_TITLE = null;
  109. }
  110. }
  111.  
  112. // Add an eventListener to navigateurs that can do it somehow.
  113. // Originally by the amazing Scott Andrew.
  114. function addEvent(obj, evType, fn){
  115. if (obj.addEventListener){
  116. obj.addEventListener(evType, fn, true);
  117. return true;
  118. } else if (obj.attachEvent){
  119. var r = obj.attachEvent("on"+evType, fn);
  120. return r;
  121. } else {
  122. return false;
  123. }
  124. }
a c 232 L Programmation
9 Septembre 2007 01:56:19

BAh non, tu as déjà un truc de bulles, donc c'est bon, je pensais que tu faisais tes bulles juste avec le "title", sauf que là, ta bulle récupère la valeur de title, et la met dans une bulle, donc ça devrait le faire :) 

Par contre, est-ce que ton infobulle acceptera les liens ? je ne sais pas, essaie de mettre du code HTML dans ton attribut title
Comme ça par exemple : title="<a href='alert(\'test\');'>click</a>"
9 Septembre 2007 11:56:48

Parfait, mais dans lifno bulle ya un truc bizare, fin 2 :) 

Alors, deja ya une petite image sans lien qui s'affiche :



Et deux 2 ya un pb dans mon code js, qui m'empeche de cliké dessus, si je met mon pointeur de la bulle, elle s'en va



i
  1. f(empty($carto[$x][$y]['id'])) { //Case vide
  2. ?><a<img src="style/image/herbe20.png" width="20" height="20" title="(<? print $x.':'.$y; ?> )"></img><?
  3. } else { //Case occupée
  4. ?><img src="style/image/ruche20.png" width="20" height="20" title="<? print $carto[$x][$y]['pseudo'].'('.$x.':'.$y; ?> )<br><a href='alert(\'test\');'>click</a></img><?
  5. }
Anonyme
9 Septembre 2007 13:02:58

alors deja je ne pense pas que tu puisse mettre 'alert(\'test\') dans l'attribut href de ton lien, tout simplement parce que c'est du javascript

A la place essaye OnClick="alert('test');"

Ensuite je pense que quand tu vas sur ta bulle, tu sors de la case ou tu étais, et donc celle ci s'efface. Essaye de modifier les conditions qui font s'effacer la bulle
9 Septembre 2007 13:22:07

déja, avant de faire du javascript ou php, fini d'apprendre le html car :

<a<img src="style/image/herbe20.png" width="20" height="20" title="(<? print $x.':'.$y; ?> )"></img>

ca existe pas !
9 Septembre 2007 19:24:45

Deja, sa c'est deja corrigé, la alert aussi marche,
Je code pas javascrit, donc je sais pas modifié les conditions
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS