Problème d'onclick

Résolu
DoUPod Messages postés 5 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 février 2008 - 6 févr. 2008 à 19:33
DoUPod Messages postés 5 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 février 2008 - 7 févr. 2008 à 19:42

6 réponses

DoUPod Messages postés 5 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 février 2008
6 févr. 2008 à 19:34
Bonjour,


J'ai le code plus bas. Je voudrais qu'à chaque clic sur le div précédent ma fonction s'éxecute mais ça ne marche pas. Si je remplace le contenu de la fonction par alert('truc'); par exemple, ça marche bien à chaque fois.

Comment faire ?

Merci

Code :

1.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
3.
<head>
4.
<title>Ipod on Touch ?</title>
5.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
6.
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="test.css" />
7.
<meta name "viewport" content "width = device-width, initial-scale = 1.0, user-scalable = no"/>
8.
</head>
9.

10.


11.



12.


13.



14.


15.
<?php
16.
// On liste les fichiers contenus dans le dossier music
17.
$musiques = scandir('music');
18.

19.
$nombre_fichiers = count($musiques) - 2;
20.
$nbre_pages = ($nombre_fichiers - 2) / 6;
21.
$nombre_pages = ceil($nbre_pages);
22.

23.
//Si on a un GET de page : on récupère le max et la page
24.
if(isset($_GET['page']))
25.
{
26.
$max = 6 * intval($_GET['page']) + 2;
27.
$page = intval($_GET['page']);
28.
// Selection (variable JS) == 9 si on recule d'une page et 1 si on avance
29.
}
30.
else // Sinon, on est sur la page 1 est le max est 8
31.
{
32.
$page = 1;
33.
$max = 8;
34.
}
35.

36.
if($page == $nombre_pages)
37.
{
38.
$nbre_musiques_page = $nombre_fichiers - ($nombre_pages * 6);
39.
$nombre_musiques_page = 6 + $nbre_musiques_page;
40.
}
41.
else
42.
{
43.
$nombre_musiques_page = 6;
44.
}
45.

46.
//On parcoure l'array
47.
for ($i = $max - 6; $i < $max; $i++)
48.
{
49.
$musiques[$i] = preg_replace('#.mp3$#i', '', $musiques[$i]); //On supprime le .MP3 ou .mp3
50.

51.
if(strlen($musiques[$i])>= 28) // On tronque la chaine si elle est trop longue
52.
{
53.
$musiques[$i] = substr($musiques[$i],0,28);
54.
$espace = strrpos($musiques[$i]," ");
55.
$musiques[$i]=substr($musiques[$i],0,$espace)."...";
56.
}
57.
echo($musiques[$i].'
'); // On affiche les musiques
58.
}
59.
// $i = nombre de pages à ce moment
60.
?>
61.


62.


63.


64.



65.



66.



67.



68.



69.


70.


71.
<script type="text/javascript">
72.
var selection = 1;
73.
document.getElementById('fond_ecran').style.backgroundImage='url(surlignage_musiques.php?selection='+selection+')';
74.
var page = <?php echo $page;?>;
75.
var nombre_musiques_page = <?php echo $nombre_musiques_page; ?>;
76.
function precedent(selection)
77.
{
78.
if(selection == 1)
79.
{
80.
if(page > 1)
81.
{
82.
document.location.href='musique.php?page=<?php echo $page - 1; ?>';
83.
}
84.
selection = 2;
85.
}
86.
selection --;
87.
document.getElementById('fond_ecran').style.backgroundImage='url(surlignage_musiques.php?selection='+selection+')';
88.
}
89.

90.
function suivant(selection)
91.
{
92.
if(selection nombre_musiques_page && page <?php echo $nombre_pages; ?>)
93.
{
94.
selection --;
95.
}
96.
if(selection == 6 && page < <?php echo $nombre_pages;?>)
97.
{
98.
document.location.href='musique.php?page=<?php echo $page + 1; ?>';
99.
}
100.
selection ++;
101.
document.getElementById('fond_ecran').style.backgroundImage='url(surlignage_musiques.php?selection='+selection+')';
102.
}
103.
</script>
104.

105.
</html>
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
6 févr. 2008 à 20:42
Bonjour,
- Tout d'abord ne pas mettre réponse acceptée lorsque ce n'est pas le cas...
- Ensuite mettre le code généré, la page HTML en fait, pour plus de facilité d'interprétation et de test...
- Faire attention au copier coller pour éviter que l'intervenant ne se farcisse tout le travail, certain  parte tout de suite lors de la lecture des POSTs...
- En fin bien expliquer son problème...

Dans ton cas la seule interrogation que je me fasse c'est pourquoi passer "selection" en paramètre des fonctions alors que la variable est déclarée en global ?
...
;O)
3
DoUPod Messages postés 5 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 19:42
Problème résolu. Je passais selection dans la fonction et ça bloquait tout. Merci
3
DoUPod Messages postés 5 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 février 2008
6 févr. 2008 à 20:48
Pourrais-tu m'expliquer un peu plus ?

Sinon, le prmeier post n'a pas marché donc j'ai posté une réponse et je l'ai acceptée, c'est tout ...

Pour la page générée après, voila ce que donne Firefox :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Ipod on Touch ?</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="test.css" />
<meta name "viewport" content "width = device-width, initial-scale = 1.0, user-scalable = no"/>
</head>












Crazy Frog - Axel F
Daft Punk - Harder Better ...
David Guetta - Baby When...
David Guetta - Love Is Gone
David Guetta - Money
Fireball et Bob Sinclar -...










<!-- On déplace le surlignage. Si la sélection est sur le dernier morceau, on passe à la page suivante -->











<script type="text/javascript">
var selection = 5;
document.getElementById('fond_ecran').style.backgroundImage='url(surlignage_musiques.php?selection='+selection+')';
var page = 1;
var nombre_musiques_page = 6;
function precedent(selection)
{
if(selection == 1)
{
if(page > 1)
{
document.location.href='musique.php?page=0';
}
}
else
{
selection --;
document.getElementById('fond_ecran').style.backgroundImage='url(surlignage_musiques.php?selection='+selection+')';
}
}

function suivant(selection)
{
if(selection nombre_musiques_page && page 2)
{
selection --;
}
if(selection == 6 && page < 2)
{
document.location.href='musique.php?page=2';
}
selection ++;
document.getElementById('fond_ecran').style.backgroundImage='url(surlignage_musiques.php?selection='+selection+')';
}
</script>

</html>


Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
6 févr. 2008 à 20:57
C'est beaucoup plus clair pour le contenu, mais qu'est ce qui ne marche pas comme tu le veux?
;O)
0
DoUPod Messages postés 5 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 12:23
Ma fonction (precedent ou suivant) ne s'exécute qu'une seule fois, lors du premier clic. C'est à dire qu'en fait l'image ne change qu'une seule fois.

Je veux faire un "Ipod" en web. Cette fonction sert à créer une image avec PHP (et GD) en fonction de la sélection pour donner un effet "surlignage".

Si je remplace tout le contenu de la fonction par alert('truc'); la boite de dialogue s'affiche bien à chaque clic. Le problème vient donc de ma fonction je pense ...

Comment faire ? merci
0
Rejoignez-nous