Page 1 sur 1

Onmouseover dans un td dans un echo ?

Posté : 07 déc. 2010, 19:57
par byron
Salut à tous,

J'ai un bout de code php, qui fait apparaitre des boutons. J' aimerai lui affecter des évènements javascript (onmouseover/out).
Mais voila, cela ne marche pas.

Je crois que c'est un problème de guillemet qui rentre en "colision" avec celles du php, notemment celles du echo.
<?php
function affichePages($nb,$page,$total) {
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td id="numpage" onmouseover=\'mouseOver();\'><a class="numpage" href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}
?>
Comme vous pouvez le voir j'ai testé la technique consistant à mettre des slash, mais rien n'y fait.
Si quelqu'un sait comment contourner ce problème, je suis preneur :mrgreen:

Merci.

Re: Onmouseover dans un td dans un echo ?

Posté : 07 déc. 2010, 22:20
par xTG
Pourquoi tout d'un coup des simple quotes ? onMouseOver est un attribut comme un autre, au même titre que id par exemple.

Re: Onmouseover dans un td dans un echo ?

Posté : 07 déc. 2010, 23:59
par byron
Ben en fait j'ai tout testé, simple et double guillemet, mais ça reviens au même.

La seule réponse que j'ai trouvé c'est que les quote de l'echo devait géner celle du javascript et qu'il fallait mettre les slash avant.

Re: Onmouseover dans un td dans un echo ?

Posté : 08 déc. 2010, 02:17
par devlop78
Je pense qu'il s'agit plutot d'un problème JavaScript. Qu'est censé faire JavaScript à l'appel de mouseOver() ? Comment peut-il savoir qui l'a appelé ?

Re: Onmouseover dans un td dans un echo ?

Posté : 08 déc. 2010, 09:50
par xTG
Le code que tu as ne générera aucune erreur PHP (voir la coloration syntaxique qui est correcte).
Donc le seul soucis ne peut venir que de ta fonction js.

Re: Onmouseover dans un td dans un echo ?

Posté : 08 déc. 2010, 12:19
par byron
Oui, c'est possible que ça vienne du javascript.

La fonction mouseOver est juste un rollover sur un bouton. En fait j'ai 2 boutons et lorsque je roll dessus je veux qu'ils changent de couleur.
Ils sont gris au départ et je leur ai assigné une couleur orangée.
Je vous met le code entier ci dessous, si des fois ça peut aider.
Merci.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>


<style type="text/css">
#numpage {
	font-family:Arial, Helvetica, sans-serif;
	font-size:14px;
	color:#000000;
	border:thin #CCCCCC solid;
	width:30px;
	height:30px;
	text-align:center;
}

.numpage {
	
	font-family:Arial, Helvetica, sans-serif;
	font-size:14px;
	color:#666666;
}
</style>


<script type="text/javascript">
function mouseOver()
{
document.getElementById("numpage").style.color="#FCO";
}
function mouseOut()
{
document.getElementById("numpage").style.color="#666";
}
</script> 

</head>

<body>




<?php
function affichePages($nb,$page,$total) {
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td id="numpage" onmouseover=\'mouseOver();\'><a class="numpage" href = "'.$page.'?limite='.$limite.'">''.$numeroPages.'</td></a>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}
?>



</body>
</html>