Bonjour à tous,
je suis assez novice en ajax, y a des choses que je sais faire, mais d'autre je ne comprends pas.
Alors voilà l'idée :
J'ai une page 1 avec un formulaire. A la soumission du formulaire, j'ai un tableau qui s'affiche en dessous.
J'ai fais une petite fonction jquery pour que lorsqu'on clique sur une ligne, on puisse récupérer toutes les valeurs des champs de la ligne (ça, c'est ok).
En même temps qu'on clique, il y a une redirection vers une page 2 qui contient un autre tableau (la redirection c'est ok).
Pour l'instant, je bloque parce que lors du clique il n'envoie pas les données récupérées à la page 2.
****
le fichier twig de la page 1 (sans le formulaire)
Code twig : 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 <div class="row displayInformation"> <span>Tableau pour les opérateurs : </span><span>{{ sqlOperator }}</span> </div> <div class="row"> <table class="striped sortable centered" id="table-arcep"> <thead> <tr> <td>Année</td> <td>Mois</td> <td class="grayBackground">Nombre de commandes concernées</td> <td>ADR0</td> <td>ADRPC</td> <td>ADRVOIE</td> <td>ADRCOMP</td> <td class="grayBackground">Total Acronymes</td> </tr> </thead> <div class="divider"></div> <tbody> {% for tableAcronyme in tableAcronymes %} <tr> <td class="cellYear">{{ tableAcronyme.annee }}</td> <td class="cellMonth">{{ tableAcronyme.mois }}</td> <td class="cellOrders grayBackground selectable">{{ tableAcronyme.numberOrders }}</td> <td class="cellAdr0 selectable">{{ tableAcronyme.numberADR0 }}</td> <td class="cellAdrpc selectable">{{ tableAcronyme.numberADRPC }}</td> <td class="cellAdrvoie selectable">{{ tableAcronyme.numberADRVOIE }}</td> <td class="cellAdrcomp selectable">{{ tableAcronyme.numberADRCOMP }}</td> <td class="cellSumAdr grayBackground">{{ tableAcronyme.numberTotalAcronymes }}</td> </tr> {% else %} <tr> <td colspan="12">Rien à afficher</td> </tr> {% endfor %} </tbody> <tfoot> <tr class="grayBackground"> <td colspan="2">Total</td> <td>{{ tableSumAcronymes.sumOrders }}</td> <td>{{ tableSumAcronymes.sumADR0 }}</td> <td>{{ tableSumAcronymes.sumADRPC }}</td> <td>{{ tableSumAcronymes.sumADRVOIE }}</td> <td>{{ tableSumAcronymes.sumADRCOMP }}</td> <td>{{ tableSumAcronymes.sumTotalAcronymes }}</td> </tr> </tfoot> </table> </div> </div> {% block script %} {#Pour l'affichage de l'input select#} <script> $(document).ready(function() { $('select').material_select(); }); </script> {#Pour le tableau#} {#<script type="text/javascript" src="{{ base_url() }}/js/sortable.js"></script>#} <script type="text/javascript" src="{{ base_url() }}/js/tableGestion.js"></script> {#Pour le bouton checkbox : Tous#} <script type="text/javascript" src="{{ base_url() }}/js/selectAll-None.js"></script> {#Activation des fonctions au lancement de la page#} <script> window.onload = function() { eventListenerSelect(); } </script> <script> $(document).ready(function () { $("tr").click(function () { //on récupère la ligne sélectionnée var ligne = $(this); //on l'utilise dans la fonction selectLine(ligne); }) }) </script> {% endblock %} {% endblock %}
**************
le fichier tableGestion.js
Code JS : 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 /** * Permet une gestion dynamique des tableaux */ function selectLine(ligne){ //on récupère les données de la ligne var year = ligne.find(".cellYear").text(); var month = ligne.find(".cellMonth").text(); var orders = ligne.find(".cellOrders").html(); //les acronymes var adr0 = ligne.find(".cellAdr0").html(); var adrpc = ligne.find(".cellAdrpc").html(); var adrvoie = ligne.find(".cellAdrvoie").html(); var adrcomp = ligne.find(".cellAdrcomp").html(); var sumAdr = ligne.find(".cellSumAdr").html(); // OK on récupère bien que les champs de la ligne du tableau console.log(year+"/"+month+"/"+orders+"/"+adr0+"/"+adrpc+"/"+adrvoie+"/"+adrcomp+"/"+sumAdr); // var yearJson = encodeURIComponent(year); // console.log(yearJson); //on effectue la requête ajax $.ajax({ type: "GET", url: "/activites/arcep/acronyme", data: { annee: year, mois: month, orders: orders, adr0: adr0, adrpc: adrpc, adrvoie: adrvoie, adrcomp: adrcomp, sumAdr: sumAdr }, datatype: "application/json", contentType: "application/json", success: function (data) { //cette ligne permet la redirection vers la page 2 (tableau de toutes les commandes) window.location.pathname = "/activites/arcep/acronyme"; console.log(data); } }) }
Apparemment, il ne les mets pas les valeurs des différents champs dans le data.
Peut-on m'expliquer pourquoi il ne semble pas les mettre dans le data de la requête AJAX ?
Merci d'avance
Partager