Bonjour,
je développe une application web avec php7.3.21. Je veux envoyer une notification à un utilisateur connecté une notification au retour d'une fonction ajax.
Merci de me donner un coup de main
J'ai beau cherché mais j'ai pas su l'adapter.
Bonjour,
je développe une application web avec php7.3.21. Je veux envoyer une notification à un utilisateur connecté une notification au retour d'une fonction ajax.
Merci de me donner un coup de main
J'ai beau cherché mais j'ai pas su l'adapter.
Hello,
Tu peux nous montrer ton code stp ?
Révise tes galops avec Petit galop !
Salut,
Voici le code php. C'est la fonction affiche_notif() en javascript qui se charge d'envoyer les notifications coté client.
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
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246 <?php //session_start(); ?> <!DOCTYPE html> <?php if( (isset($_SESSION['pseudo'])) && (isset($_SESSION['profil_utilisateur'])) && (isset($_SESSION['service_id'])) ) { if ($_SESSION['profil_utilisateur']==2) { include('functions.php'); $bdd_MCHNMFT=connect(); $reponse1_serv_demandeur = $bdd_MCHNMFT->query('SELECT nom_service FROM services where service_id='. $_SESSION['service_id']); $donnee_serv_demandeur = $reponse1_serv_demandeur->fetch(); $nomservice_demandeur=$donnee_serv_demandeur['nom_service']; ?> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="maintenance_css.css" /> <title>ORDRE DE MISSION MSAS</title> </head> <body> <div class="row"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <div class="sparkline12-list"> <div class="sparkline12-hd"> <div class="main-sparkline12-hd"> <h1>Saisir un bon de travail</h1></br> </div> </div> <div class="sparkline12-graph"> <div class="basic-login-form-ad"> <div class="row"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <div class="all-form-element-inner"> <form action="#"> <div class="form-group-inner"> <div class="row"> <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12"> <label class="login2 pull-right pull-right-pro">libelle panne</label> </div> <div class="col-lg-9 col-md-9 col-sm-9 col-xs-12"> <textarea class="form-control" placeholder="Saisir l'anomalie" id="libelle_panne"></textarea> </div> </div> </div> <div class="form-group-inner"> <div class="row"> <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12"> <label class="login2 pull-right pull-right-pro">Date bon:</label> </div> <div class="col-lg-9 col-md-9 col-sm-9 col-xs-12" id="data_5"> <div class="input-daterange input-group" id="datepicker"> <input type="text" class="form-control" name="date_bon_travail" placeholder="Date bon" id="date_bon_travail"/> </div> </div> </div> </div> <div class="form-group-inner"> <div class="row"> <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12"> <label class="login2 pull-right pull-right-pro">Service demandeur</label> </div> <div class="col-lg-9 col-md-9 col-sm-9 col-xs-12"> <div class="form-select-list"> <select class="form-control custom-select-value" name="account" id="service_demandeur_bon" disabled="disabled"> <option value="<?= $_SESSION['service_id'] ?>"><?= $nomservice_demandeur ?></option> </select> </div> </div> </div> </div> <div class="form-group-inner"> <div class="login-btn-inner"> <div class="row"> <div class="col-lg-3"></div> <div class="col-lg-9"> <div class="login-horizental cancel-wp pull-left"> <button class="btn btn-white" type="reset">Réinitialiser </button> <button class="btn btn-sm btn-primary login-submit-cs" id="save_bon_travail">Enregistrer </button> </div> </div> </div> </div> </div> </form> <div id="bon_travaux_id"/> </div> </div> </div> </div> </div> </div> </div> </div> <script> "use strict"; $(function(){ // forme abrégée de $(document).ready(function(){ $('#save_bon_travail').click(function( event ) { event.preventDefault(); const date_bon_travail= $("#date_bon_travail").val(); const val_libelle_panne = $.trim($("#libelle_panne").val()); const service_demandeur_bon= $("#service_demandeur_bon").val(); if (confirm("Voulez-vous vraiment enregistrer ce bon de travail")) { if(val_libelle_panne=="") { alert('Vous devez sasir le libellé de votre anomalie'); } else if(date_bon_travail=="") { alert('Vous devez preciser la date du bon'); } else { // Stop form from submitting normally $.post( 'enregistrement_bon_travail_maintenance.php', // Un script PHP que l'on va créer juste après { val_libelle_panne : val_libelle_panne, service_demandeur_bon : service_demandeur_bon, // Nous récupérons la valeur de nos input que l'on fait passer à connexion.php date_bon_travail : date_bon_travail }, function(data){ alert(data); affiche_notif(); }, 'text' ); } } } ); }); $( window ).load( function(){ }); function affiche_notif() { if ('serviceWorker' in navigator && 'PushManager' in window) { const publiKey='BEVLPXyoy6OzMZOovJBG_agm6x2E6HxgRFXkPmYyC9X0iTfMZU19smeNdHuU3Tld1p7dPSSCczU97reXJdW4Ac8'; Notification.requestPermission().then(function (result) { ****if (result === 'granted') { ********navigator.serviceWorker.register('sw.js'); ********navigator.serviceWorker.ready.then(function (registration) { ************registration.pushManager.subscribe({ ****************userVisibleOnly: true, ****************applicationServerKey: urlB64ToUint8Array(publiKey) ************}).then(function (pushSubscription) { ****************console.info('Subscription informations', JSON.stringify(pushSubscription)); ************}); ********}) ****} }); setVapidDetails( **'mailto:sebastien.ollivier@gmail.com', **'BFXCCGgVrFv5LjdxvKz7Ajrupx_BkBSxJ1fVIzeVGrr6ep2cG8numyrGTGpIm8woncwUR7hQ5Ru7uA9bMfERe4s', **'fldoEKjtA9KqDw85CgwqSt3etuLPFahAo4y3yYHH0_w' ); * const pushSubscription = { **endpoint: "https://fcm.googleapis.com/fcm/send/cFR5cJH7OKk:APA91bFrIqbRBHg5IAdfjoS72IAfgPNFokQcXrGK-y68ylIJrHTZ-Or5JpAdaBXicbtZUFoH9tifc6woDTBzsYvSdbkeXlKNGmVdIoQabHGlu_Jesb45-CUgHOqymeK1vRbWLbgn5fG_", **keys: { ****auth: "k04bqRFRRMvuGSpeR8VAfA", ****p256dh: "BN1vCASaeBiEg7xOpcCN3nUMOLsGs9rhLmkZnAcKtjuEDyTJnQa8fMqfCN7b9ywtdQrBCeKjg_bGKslSN0boZwk" **} }; * sendNotification(pushSubscription, 'Your Push Payload Text'); } } function urlB64ToUint8Array(base64String) { const padding = '='.repeat((4 - base64String.length % 4) % 4); const base64 = (base64String + padding) .replace(/\-/g, '+') .replace(/_/g, '/'); const rawData = window.atob(base64); const outputArray = new Uint8Array(rawData.length); for (let i = 0; i < rawData.length; ++i) { outputArray[i] = rawData.charCodeAt(i); } return outputArray; } </script> <script src="scripts/require.js"data-main="scripts/app.js"></script> </html> <?php } else { ?> <div id="texte_connect"> <center>Votre profil ne vous permet pas d'acceder à cette page</center> </div> <?php } ?> <?php } else { ?> <div id="texte_connect"> <center><a href="index.php">Connectez-vous-ici</a></center> </div> <?php } ?>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager