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
    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
      1. Pour info histoire que tu vois l'importance du lien en couleur (c'est en premiere page)

        www.chamboul-tou.fr
        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 :)
          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...
            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
              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.....
                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
                  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>
                    <?
                    	}
                    }
                    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
                      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';"
                        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