[html] Imbrication de guillemets "multiples&q

Julien -  
Jodu Messages postés 91 Statut Membre -
Bonjour,

Je réalise un site web en php/javascript/html et j'ai un problème d'imbrication de guillemets. Voila les morceaux de codes :

en php, je commence par déclarer les variable $sEventPicName et $EventCaracteristique :

$sEventPicName = "<img class=\"photo1\" style=\"width:{$this->iThumbSize}px;height:{$this->iThumbSize}px;background-image:url({$site['sdatingImage']}{$sTypePic}{$sEventPicName});\" src=\"{$sSpacerName}\" alt=\"{$sAlt}\" />";

Jusque la tout va bien : si j'affiche $sEventPicName dans ma page web, j'ai la bonne image qui apparait.

Le probleme c'est que je veux faire afficher cette image quand la souris passe sur une balise div. Donc un peu plus loin dans le code j'ai écrit :

$sEventPic = <<<EOF

<div class="thumbnail_block">
<a href="{$sGenUrl}">
<div OnMouseOver="this.innerHTML='{$sEventPicName}';" OnMouseOut="this.innerHTML='{$EventCaracteristique}';">
{$EventCaracteristique}
</div>
</a>
</div>

EOF;

Et c'est la que ca bug : le premier double guillemet de <img class=\" vient fermer le guillemet du onmouseover quand le code est lu par un navigateur.

J'ai déjà essayé de mettre des \' ou \\\' ou \\\" mais sans succès ...
Quelqu'un aurait-il une solution ?

Merci de votre aide
Configuration: Windows XP
Firefox 3.0.10

4 réponses

  1. Jodu Messages postés 91 Statut Membre 14
     
    Bonjour,

    as-tu essayé avec les antiquotes ?
    0
  2. Julien
     
    Merci Jodu pour ta réponse.

    L'imbrication " ' `` ' " fonctionne bien.

    Mais maintenant je suis confronté à un autre problème. Le code html à afficher est le suivant :

    <img class=`photo1` style=`width:110px;height:110px;background-image:url(http://xxx/xxx/xxx/xxx.gif);` src=`http://xxx/xxx/xxx/yyy.gif` alt=`ddd.jpg` />

    Sous internet explorer pas de problème.
    Mais Firefox n'affiche pas les images : il affiche `ddd.jpg` (avec les anti quotes ...)
    Et la console m'indique :
    Avertissement : Déclaration attendue, mais « ` » trouvé. Passage à la déclaration suivante.

    Comment faire pour qu'il lise les anti quotes comme des quotes normales ???

    merci
    0
  3. Jodu Messages postés 91 Statut Membre 14
     
    Salut,

    HTML n'interprète que les quotes/doubles quotes.

    La solution serait de mettre des simples quotes à la place de tes antiquotes.
    Ton code complet m'aiderait.
    Tu sais, faire un truc genre ` "<img src='gnagna'.../>" `
    En php, cela fonctionne si c'est bien fait.
    0
    1. Julien
       
      Salut Jodu et merci pour ton aide.

      Avant j'avais essayé le \" qui ne fonctionne pas puisqu'il referme le OnMouseOver ...
      En fait j'ai trouvé la solution. Le \' marche :

      Dans le code javascript : OnMouseOver="this.innerHTML='{$maVariable}';"
      Dans le code php : $maVariable="<img src=\'xxxxx\' />";

      A l'intérieur de ma balise <div>, il faut enlever les slashs puisqu'il s'agit directement du code HTML : stripslashes($maVariable);

      Voila j'espère que ca servira à d'autre.

      A bientot
      0
  4. Jodu Messages postés 91 Statut Membre 14
     
    Mais de rien ;)

    Pas bête du tout, j'y avais pas pensé ><

    A trop faire compliqué hein...
    0