Bonjour.
Avec l'aide du net, j'ai fait un script JS qui fait ce que je voulais.
Une page HTML (PHP) affiche une liste déroulante complète au chargement qui réduite lors du click sur des boutons qui provoque d'autres requêtes en passant par un script pHp.
Je ne comprends pas pourquoi je dois créer la divl'id fileContent devrait pouvoir servir aux 2 fonctions ?.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <div id="menuDer"> </div>
Est ce que quelqu'un peut m'aider à commenter plus précisément les scripts ?
Comment refaire ceci en jQuery ?
Merci de votre aide.
La partie formulaire :
Code html : 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 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body onload="init()"> <div> <form name="formulaire" method="post" action="<?php echo SAISIE2; ?>"> <p id="fileContent"></p> <td><button type="button" name="liste" value=<?php echo REQUETES2."?param1=V¶m2=N"; ?> >Vélo</button></td> <td><button type="button" name="liste" value=<?php echo REQUETES2."?param1=C¶m2=N" ; ?>>Course à P</button></td> <td><button type="button" name="liste" value=<?php echo REQUETES2."?param1=V¶m2=O" ; ?>>Vélo Court</button></td> <td><button type="button" name="liste" value=<?php echo REQUETES2."?param1=C¶m2=O"; ?> >Course à P Court</button></td> <div id="menuDer"> </div> <div align="center"> <input type="submit" name="Submit" value="Envoyer"> </div> </form> </div> </body> <script src="../JS/onload.js"></script> </html>
Le code JSavec la fonction au chargement de la page et la fonction pour l’événement click :
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 /*AJAX*/ function loadFile(file) { var xhr = new XMLHttpRequest(); // On souhaite juste récupérer le contenu du fichier, la méthode GET suffit amplement : xhr.open('GET', file); xhr.addEventListener('readystatechange', function() { // On gère ici une requête asynchrone if (xhr.readyState == 4 && xhr.status == 200) { // Si le fichier est chargé sans erreur document.getElementById('fileContent').innerHTML = xhr.responseText ; // On l'affiche ! } else if (xhr.readyState == 4 && xhr.status != 200) { // En cas d'erreur ! alert('Une erreur est survenue !\n\nCode :' + xhr.status + '\nTexte : ' + xhr.statusText); } }, false); xhr.send(null); // La requête est prête, on envoie tout ! } function init(file) { // Comme d'habitude, une IIFE pour éviter les variables globales document.getElementById("menuDer").style.display = "none"; var inputs = document.getElementsByName('liste'), inputsLen = inputs.length; for (var i = 0 ; i < inputsLen ; i++) { inputs[i].addEventListener('click', function() { loadFile(this.value); // À chaque clique, un fichier sera chargé dans la page }, false); } loadFile("../MYSQL/requete_parcours.php?param1=T¶m2=N"); };
Partager