Bonjour, j'ai vraiment un problème avec deux objets ajax. Bon je vous explique ce que je veux faire.
La première chose que je veux faire, c'est modifier périodiquement un bloc div avec la réponse du serveur, pour cela, je crée l'objet Ajax.Request et quand la je reçoi la réponse je fais appel à une fonction qui faire disparaitre le bloc en question avec un effet de glissement de droite à gauche et après j'affiche la réponse. Jusqu'à maintenant tout fonctionne bien (même si j'ai passé une journée à me casser la tête pour la réaliser).
Mais maintenant je veux créer un autre div contenant trois autres div où dans chacune il y a une image. Lorsqu'on click sur une autre div là commence les problèmes, par ce que j'exécute une autre fonction SlideShowLogo qui instancie un objet Ajax.Updater et fait décaler le contenu des trois div à gauche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 var pos=0, pe, pe2, reponse='', start_slide=false, request_send=false, stop=false;; function toLeft() { if(start_slide==true) { if(pos>=-700) { pos=pos-100; $('ets_alaune').style.left=pos+'px'; } else { $('ets_alaune').innerHTML=reponse; pos=0; $('ets_alaune').style.left=pos+'px'; start_slide=false; request_send=false; } } } function EntreprisesAlaUne() { var myAjax, param; //'application/models/Entreprises/index.php' if(start_slide==false && request_send==false) { param='modele=Entreprises&tache=4'; myAjax = new Ajax.Request( 'ajax.php', { method: 'post', parameters: param, onComplete: Complet, onCreate: Creation } ); } } function Creation(requete) { request_send=true; //pe2.stop(); //alert('pe2 stopé'); } function Complet(requete) { reponse = requete.responseText; start_slide=true; //alert('lancement periodical'); } function StopSlideShow() { if(stop==false) { stop=true; pe2.stop(); $('play_pause_ets_alaune').src='themes/default/images/play2.png'; } else { pe2 = new PeriodicalExecuter(EntreprisesAlaUne, 6); stop=false; $('play_pause_ets_alaune').src='themes/default/images/pause2.png'; } //start_slide=false; } //pe.currentlyExecuting==false pe2 = new PeriodicalExecuter(EntreprisesAlaUne, 6); pe = new PeriodicalExecuter(toLeft, 0.1);
Et cette fonction aussi fonctionne bien, mais lorsqu'elle est déclenché la fonction toLeft() qui est en haut s'exécute une seule fois sans que je fais appel à elle ce qui me pourri mon travail. En plus elle doit ne s'exécuter qu'à partir de l'objet pe(PeriodicalExecuter) alors que moi je ne fais pas appel à cet objet dans la fonction SlideShowLogo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 var pelogo='', request_send_logo=false, start_slide_logo=false; function SlideShowLogo(direction) { var myAjaxlogo, param; if(direction=='left') { if(start_slide_logo==false && request_send_logo==false) { param='modele=Entreprises&tache=5'; myAjaxlogo = new Ajax.Updater( 'logo3', 'ajax.php', { method: 'post', parameters: param, onComplete: Complet2, onCreate: Creation2 } ); } } else { alert('not ok'); } } function Creation2() { $('logo1').innerHTML=$('logo2').innerHTML; $('logo2').innerHTML=$('logo3').innerHTML; $('logo3').innerHTML='<img src="themes/default/images/progressbar.gif"/>'; request_send_logo=true; start_slide=true; } function Complet2() { start_slide=false; request_send_logo=false; }
S'il vous plaîtest ce qu'il y a quelqu'un qui peut me dire où est le problème par ce que là je bloc.
![]()







).
Répondre avec citation
Partager