Problème d'insertion javascript dans php

Résolu
Bonjour,

J'ai un petit soucis (merci IE), afin de mettre en couleur dans un mouseover un lien/news je dois insérer e commande javascript dans du code php.

	echo '<table width="210px" class="news" onMouseOver="this.style.color='red'"; onMouseOut="this.style.color='white'";><tr><td>';
        echo '<a href="toto.urlmarrante.fr">';
		echo  htmlentities(trim($data['titre'])) , '<br />', '</td></tr>';
		echo  '<tr><td>Venez nombreux !<br />';
		echo '</a>';
		echo '</td></tr></table>';


Le soucis quans j'insère comme ci-dessus ma commande javascript j'ai ca :

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /news.php on line 26
La ligne 26 est :
		echo '<table width="210px" class="news" onMouseOver="this.style.color='red'"; onMouseOut="this.style.color='white'";><tr><td>';


Z'avez une idée ? j'ai essayé d'échapper mais pas de résultat...

13 réponses

  1. Contributeur
    Ecoute, je viens de faire le test avec ce code :

    <a href="commentcamarche.net" OnMouseOver="this.style.color='red';" OnMouseOut="this.style.color='blue';">Lien</a>


    Et ça marche ...
    Teste ce code dans ta page, et si ça marche, remplace les couleurs et le liens.

    Cordialement
    2
    1. Contributeur
      Salut,

      Il me semble qu'il faut que tu mettes le point-virgule de l'instruction JavaScript entre la simple quote et la double quote.

      OnMouseOver="this.style.color='red';"

      Sinon, fait le en CSS
      avec
      a {color:white;}
      a:hover{color:red;}


      Cordialement
      0
      1. Le problème que j'ai c'est qu'en CSS ca ne passe pas ^^
        J'ai la même erreur en mettant ca :

        onMouseOver="this.style.color='red';" onMouseOut="this.style.color='white';"
        0
        1. Contributeur
          Essaye alors d'enlever tous les echo

          Ferme ton PHP avant ton code html et rouvre le avant de fermer ton if par exemple

          <?php
          if($news=1)
          {
          ?>
          Code HTML
          <?php
          }
          ?>

          Cordialement
          0
          1. J'ai plus le contenu du if qui s'affiche quand je fais dans le style que tu m'as dit la...
            Rien ne s'affiche.

            if ($nb_news == 0) {
            	echo 'Aucune news enregistrée.';
            }
            else {
            	// si on a au moins une news, on l'affiche
            	while ($data = mysql_fetch_array($req)) {
            
            		
            ?>
            
            		<table width="210px" class="news"><tr><td>
                    <a href="toto.fr" target="_top">
            		<?php htmlentities(trim($data['titre']))?><br /></td></tr>
            		<tr><td>Venez nombreux !<br />
            		</a>
            		</td></tr></table>
            <?
            	}
            }
            0
            1. Contributeur
              Il faut tout de même que tu laisses le echo dans <?php htmlentities(trim($data['titre'])) ?>

              Tu auras donc :
              <?php echo htmlentities(trim($data['titre']));  ?>


              Cordialement
              0
              1. Ca marche en effet mais j'ai encore et toujours le même problème d'origine.....

                La couleur du texte ne change pas.....
                0
                1. Contributeur
                  Dans ta balise <a> Ajoute l'atribut suivvant : class="lien_news"

                  Puis, avant ton <table>, ajoute ceci :

                  <style>
                  .lien_news a {color:white;}
                  .lien_news a:hover{color:red;}
                  </style>


                  Cordialement
                  0
                  1. C'est ce que j'avais fait au début, mais cela ne fonctionnait pas sur mon site.
                    Apres avoir fouillé le web , j'ai vu que le a:hover pouvait ne pas fonctionner.
                    Donc j'ai cherché une autre solution, que j'ai trouvée avec le javascript.

                    Le code fonctionne partout sauf dans le cas exposé précédemment...
                    Avec le css ca marche pas...
                    0
                    1. Merci beaucoup , ca marche.
                      J'avais essayé la même méthode tout à l'heure et ca n'avait pas fonctionné....
                      Peut être car j'ai gardé l'astuce avec le html non encaspulé dans les balises php comme tu avais préconisé plus haut.

                      En tout cas merci grandement :)
                      0
                      1. Contributeur
                        Derien, bonne continuation.

                        Cordialement,
                        a70m
                        0
                        1. Pour info histoire que tu vois l'importance du lien en couleur (c'est en premiere page)

                          www.chamboul-tou.fr
                          0
                          1. Contributeur
                            Effectivement.

                            Mais il était sûr qu'il y'ait une solution ;)
                            "Il n'y a pas de problèmes sans solutions" ...

                            Cordialement
                            0