Bonjour a tous!
Je suis confronté à un petit (petit mais tenace!!!) problème avac AJAX depuis un certains temps...
Je vous explique:
J'ai une listebox en haut de page qui permet de choisir une lettre, le choix de la lettre entraine le rafraichissement AJAX de la div du dessous (tous les artistes commençant par la lettre selectionnée). La liste d'artiste est une suite d'élément DragnDrop...J'ai donc entre deux balises <script> une ligne javascript qui permet d'indiquer que la liste des artistes est de type dragndrop...ce script est bien pris en compte lors du chargement de la page (donc pour la lettre A) mais dès que je change de lettre il ne l'est plus!! J'ai cherché sur le web et j'ai trouvé plusieurs info la-dessus (fonction evalScripts(); notamment mais je ne sais pas ou mettre tout ça...)
J'utilise prototype, rico et scriptaculous...
Je vous mets mon code :
Code de la page tpl:
Le code de mon fichier letterelement.request.tpl:
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 <div class="grey"> <div class="para2"> <span class="bold">First letter of the artist</span> <select name="select_letter" id="select_letter" size="1" onchange="Getletterelement('js_script');"> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> <option value="D">D</option> <option value="E">E</option> <option value="F">F</option> <option value="G">G</option> <option value="H">H</option> <option value="I">I</option> <option value="J">J</option> <option value="K">K</option> <option value="L">L</option> <option value="M">M</option> <option value="N">N</option> <option value="O">O</option> <option value="P">P</option> <option value="Q">Q</option> <option value="R">R</option> <option value="S">S</option> <option value="T">T</option> <option value="U">U</option> <option value="V">V</option> <option value="W">W</option> <option value="X">X</option> <option value="Y">Y</option> <option value="Z">Z</option> </select> </div> </div> <div id="letterelement"> {if $nbelements == 0} <div class="topDoubleBorder"> <span class="rouge">{$locale.msg_noelementletter}</span> </div> {else} <div class="topDoubleBorder"> <div id="listContainer"> { for start=0 stop=$nbelements step=1 value=current } <div id="item_{$element[$current].id_content}">{$element[$current].artist} / {$element[$current].title} </div> {/for} </div> <script type="text/javascript"> // <![CDATA[ Sortable.create('listContainer',{$openbracket}tag:'div'{$closebracket}); // ]]> </script> </div> {/if} </div>
et enfin le code de mon fichier reponse letterelement.response.tpl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function Getletterelement(idElement) {$openbracket} var letter = document.getElementById("select_letter").value; ajaxEngine.sendRequest('Getletterelement',"letter="+letter); {$closebracket}
Voila, si vous y voyez un peu plus clair que moi, je suis preneur...je suis bloqué depuis un bon moment...
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 <response type="element" id="letterelement"> {if $ok} {if $nbelements == 0} <div class="topDoubleBorder"> <span class="rouge">{$locale.msg_noelementletter}</span> </div> {else} <div class="topDoubleBorder"> <div id="listContainer"> { for start=0 stop=$nbelements step=1 value=current } <div id="item_{$element[$current].id_content}">{$element[$current].artist} / {$element[$current].title} </div> {/for} </div> </div> <script language="javascript" type="text/javascript"> // <![CDATA[ Sortable.create('listContainer',{$openbracket}tag:'div'{$closebracket}); // ]]> </script> {/if} {else} <div class="topDoubleBorder"> <span class="rouge">{$locale.msg_internalerror}</span> </div> {/if} </response>
Merci bcp pour votre aide.
Partager