Categories > TinyButStrong general (FR) >

Liens dans un tableau depuis MySQL sous FireFox

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Cemir
Date: 2008-09-09
Time: 18:14

Liens dans un tableau depuis MySQL sous FireFox

Bonjour,

J'ai crée une page de validation des messages (page admin quoi ^^) pour gérer un livre d'or.

J'ai donc une table MySQL avec mes messages dont voici la structure :

-- Structure de la table `syl_or`
--

CREATE TABLE `syl_or` (
  `id` int(11) NOT NULL auto_increment,
  `user` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `Visible` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Contenu de la table `syl_or`
--

INSERT INTO `syl_or` (`id`, `user`, `message`, `date`, `Visible`) VALUES
(2, 'Christophe', 'Hello', '2008-09-09 15:37:21', 1),
(3, 'Christophe', 'Salut', '2008-09-09 15:55:48', 1);

la partie admin de cette table est gérée par la page php suivante :

<?php
require('../inc/config.php');

function getVisible($id) {
  $result = mysql_query("SELECT Visible FROM syl_or WHERE id = " . $id);
  $row = mysql_fetch_assoc($result);
  return $row['Visible'];
}

$GLOBALS['actio_mess']='';

if (isset($_GET['action'])){
    $action = $_GET['action'];
    switch ($action) {
        case "del" :
            if (isset($_GET['id'])){
                $id = $_GET['id'];
              $q = "DELETE FROM syl_or WHERE id =" . $id;
          mysql_query($q);
          $GLOBALS['actio_mess'] = "Message n° " .$id. " supprimé.";
        }
      break;
    case "publ" :
            if (isset($_GET['id'])){
                $id = $_GET['id'];
              $state = getVisible($id);
              $state = ($state + 1) % 2;
              $q = "UPDATE syl_or SET Visible = " . $state . " WHERE id = " . $id;
              mysql_query($q);
          if ($state){
              $GLOBALS['actio_mess'] = "Message n° " .$id. " publié.";
          } else {
              $GLOBALS['actio_mess'] = "Message n° " .$id. " masqué.";
          }
        }
      break;
    default:
      break;
    }
}

// calculer la page
if (isset($this)) {
     $TBS =& $this;
     $mess = "a";
    $TBS->LoadTemplate('tpl/or.tpl') ;
    $TBS->MergeBlock('BlockOr',$cnx_id,'SELECT * FROM syl_or') ;
    $TBS->Show();
}
?>

à laquelle est associé le modèle TBS suivant :
(c'est en fait un sous-modèle intégré à index.php et index.tpl)


<div id="corpscorps">
    [var.actio_mess]
</div>
<div id="spacer"></id>


<table>
  <thead>
    <tr>
      <td>Id</td>
      <td>Nom</td>
      <td width=60%>Message</td>
      <td>Date</td>
      <td>Afficher</td>
      <td>Supprimer</td>
    </tr>
  </thead>
  <tbody>
    [BlockOr;block=begin]
      <tr>
        <td>[BlockOr.id]</td>
        <td>[BlockOr.user]</td>
        <td>[BlockOr.message]</td>
        <td>[BlockOr.date]</td>
        <td><a href="index.php?page=or&action=publ&id=[BlockOr.id]">[BlockOr.Visible]</a></td>
        <td><a href="index.php?page=or&action=del&id=[BlockOr.id]"><img src='../design/del_ico.png'></img></a></td>
      </tr>
    [BlockOr;block=end]
  </tbody>
</table>

Voila pour le background technique, le souci maintenant ^^ :

en fait, sous FF (comprenez FireFox) les liens de la 2ème ligne ne sont pas "reconnus" en tant que lien, donc on ne peut pas cliquer dessus et donc on ne peut pas supprimer ou authoriser le 2e message.
Sous IE 6&7 pas de soucis.

ors pourtant sous FF je ne vois pas de soucis :

<table>

  <thead>
    <tr>
      <td>Id</td>
      <td>Nom</td>
      <td width=60%>Message</td>
      <td>Date</td>
      <td>Afficher</td>

      <td>Supprimer</td>
    </tr>
  </thead>
  <tbody>
   
      <tr>
        <td>2</td>
        <td>Christophe</td>

        <td>Hello</td>
        <td>2008-09-09 15:37:21</td>
        <td><a href="index.php?page=or&action=publ&id=2">1</a></td>
        <td><a href="index.php?page=or&action=del&id=2"><img src='../design/del_ico.png'></img></a></td>
      </tr>
   
      <tr>
        <td>3</td>

        <td>Christophe</td>
        <td>Salut</td>
        <td>2008-09-09 15:55:48</td>
        <td><a href="index.php?page=or&action=publ&id=3">1</a></td>
        <td><a href="index.php?page=or&action=del&id=3"><img src='../design/del_ico.png'></img></a></td>
      </tr>
   
  </tbody>

</table>

Petite précision, si j'ai 15 message j'ai le même problème (uniquement sur la 2 eme ligne) et si je change l'ordre du tri, le problème rèste sur la 2e ligne (et ne suis donc pas le message)

donc voila, je suis ouvert à toute suggestion (heu du moins dans le cadre de ce souci :))

Merci d'avance à tous.

P.S. Je code sous ce bon vieux UltraEdit, avec WAMPSERVER 2 comme environement de dev
By: Skrol29
Date: 2008-09-09
Time: 22:37

Re: Liens dans un tableau depuis MySQL sous FireFox

Salut Cemir,

Je peux déjà te dire que si la page fonctionne sous un navigateur et pas sur l'autre alors ce n'est pas un problème PHP, donc TBS n'est pas en cause.

Le source du résultat après fusion fonctionne bien chez moi. Sous FF j'ai bien les liens et je peux cliquer dessus.

Vérifie que FF n'a pas mis ta page en cache et qu'il t'affiche une ancienne version de al page.
By: Cemir
Date: 2008-09-10
Time: 14:34

Re: Liens dans un tableau depuis MySQL sous FireFox

Salut Skrol,

merci pour cette réponse que je redoutais,

as-tu bien les liens sur la 2e ligne également?

as-tu juste testé la page html ou tu la générée en php?

sinon où puis-je chercher pour résoudre ce souci?

Merci à toi,
Cem
By: Skrol29
Date: 2008-09-11
Time: 00:22

Re: Liens dans un tableau depuis MySQL sous FireFox

Salut,

J'ai les liens sur les deux lignes.
J'ai juste testé la page HTML, ça doit être suffisant. Si tu constate un bug de lien sous FF et que copie le source de la page HTML depuis FF, alors on doit pouvoir reproduire le bug sur la base du source HTML.

Je suppose que JavaScript n'est pas en cause sur cette page.

By: Cemir
Date: 2008-09-11
Time: 15:35

Re: Liens dans un tableau depuis MySQL sous FireFox

Salut,

non pas de javascript sur la page, j'ai testé sur un autre pc (même config) : même erreur. Au fait, je suis sous FF 3.

je vais tester la page html seule et je te dis quoi.

Sinon, vu que c'est pas vraiment le bon forum et que je ne veux pas t'ennuyer avec des bugs qui n'ont rien à voir avec TBS, tu ne sais pas où je pourrais trouvé l'info?

bàt,
Cemir
By: Skrol29
Date: 2008-09-12
Time: 01:14

Re: Liens dans un tableau depuis MySQL sous FireFox

> tu ne sais pas où je pourrais trouvé l'info?

C'est pas simple parce qu'on a pas encore trouvé la nature du bug si ce n'est que ça vient de l'affichage. Je te conseil d'enregistrer le résultat HTML dans un fichier HTML et de faire le test sous plusieurs navigateurs. IE, FF, Opera, Chrome.
By: Brouznouf
Date: 2008-09-14
Time: 16:35

Re: Liens dans un tableau depuis MySQL sous FireFox

<img src='../design/del_ico.png'></img>
->
<img src='../design/del_ico.png' />

Vu que firefox 3 est assez respectueux des standards ça vient peut être de la.
By: Cemir
Date: 2008-09-14
Time: 19:14

Re: Liens dans un tableau depuis MySQL sous FireFox

Merci à tous pour vos réponses,

le problème venait d'un div foireux qui recouvrait le lien, donc celui-ci n'était plus cliquable