Bonjour,
J'aurais souhaité que, dès qu'une donnée qui est dans ma base de données MySQL change, un son se produise pour l'utilisateur. (Un simple 'bip').
Mais je n'ai aucune idée de comment faire...
Merci de votre réponse !
Bonjour,
J'aurais souhaité que, dès qu'une donnée qui est dans ma base de données MySQL change, un son se produise pour l'utilisateur. (Un simple 'bip').
Mais je n'ai aucune idée de comment faire...
Merci de votre réponse !
Tu peux tenter un script en ajax qui va vérifier périodiquement si une modification a été faite et lancer un son si c'est le cas.
En tout cas pour lancer un son il faudra passer par javascript.
Pour jouer un son tu peux t'inspirer de ça : http://www.developpez.net/forums/d64...er-javascript/
Merci beaucoup, mais... Je suis vraiment nul en AJAX
Tu pourrais m'aider en m'indiquant un tutorial ou une petit aide, je n'en trouve pas sur google..![]()
Ôhh ! Je m'insurge promptement là.
Les tutos Ajax foisonnent. Par exemple celui-ci
Même un vieux noob comme moi y suis arrivé. Donc c'est sûr, au regard de mes connaissances web nulles (vraiment au sens "NULL" du terme !) il y a encore 6 mois, je te confirme que c'est une technique abordable.
Le vieux sage te dit: Aies confiance en toi petit scarabée.![]()
Pour te guider un peu :
1er étape :
Créer un script PHP qui va vérifier si il y a eu des modification ou pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Connexion à la base $req = mysql_query("Requête pour chercher si il y a des modif"); if(il y a des modif){ echo 'oui'; }else{ echo 'non'; }
2eme étape :
Faire l'ajax :
Code javascript : 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 function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr } function verifierModif(){ var xhr = getXhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ if(xhr.responseText == 'oui'){ // code javascript pour jouer un son } } } xhr.open("GET","ajax.php",true); xhr.send(null); } // Pour vérifier périodiquement toutes les secondes setInterval("verifierModif", 1000)
Merci, Seb, mais, je suis un peu noob dans tout ça.
Où est-ce que je met le script PHP ?
Il faut le mettre dans function verifierModif(), non ? Car il doit vérifier toutes les x secondes si il y a un changement...
D'ailleurs, si je met 100 millisecondes au lieu de 1000, cela va faire beaucoup lagger le site ?
Salut,
[EDIT]: Seb a déjà dit en 1 ligne ce que je décris en un roman...
Je ne suis pas un spécialiste mais j'ai peur que tu ne mélanges client et serveur.
En effet, je crois bien qu'il te faudra utiliser Ajax, car a priori, ta dB ne dispose pas d'interface client. (encore heureux !)
Donc il faut que ta base (côté serveur) puisse dire au client "c'est Ok, j'ai bien les données". Auquel cas, tu pourras demander au client d'émettre un son.
Je suggère donc de chercher une solution "ajax".
Cela pourrait se passer comme cela:
1) ton code PHP "A" (côté serveur): contrôle les paramètres de mise à jour de la dB. Puis il bascule sur le code js (client).
2) ton code js (côté client): lance une requête de mise à jour de la dB auprès du serveur (la requete doit être sans les paramètres serveur évidemment,juste du type "eh, c'est ok côté serveur ?").
3) ton code PHP "B" (côté serveur): il va vérifier si l'enregistrement s'est bien passé dans la dB (côté serveur) et renvoie un code "Ok" ou "Nok" au client.
4) ton code js (côté client): selon le retour du serveur, il émet un son ou ce que tu veux.
Comme cela, pas de confusion des genres entre client et serveur, tu évites les transmission de données sensibles. Client (js) et Serveur (PHP/HTML/MySQL) se parlent mais n'échangent pas de données sensibles.
Tu peux probablement aussi le faire d'une façon plus simple. Du genre: quand le retour de ta requête est Ok, alors tu passes côté client avec un code js qui émet ton bip.
Remarque: les bips et autres "tweeet" ont disparu depuis belle lurette. Pourquoi ne pas tout simplement afficher un petit message utilisateur dans une div affichée seulement si le retour de la dB est Ok ? C'est silencieux et ça fonctionne aussi bien.
A+
Partager