Compteur de Personnes manuel en direct.
Résolu/Fermé
A voir également:
- Compteur de Personnes manuel en direct.
- Compteur électrique - Guide
- Vue satellite en direct gratuit de ma maison - Guide
- Telechargement direct - Accueil - Outils
- Manuel d'utilisation - Guide
- Comment ralentir un compteur linky forum - Accueil - Objets connectés
2 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 718
3 déc. 2020 à 15:17
3 déc. 2020 à 15:17
Bonjour,
le code que tu nous montres c'est du html/javascript.
Je pense que tu voudrais que ce compteur soit accessible depuis plusieurs appareils .... et dans ce cas, il va te falloir un serveur (ou au moins un ordi qui se trouverai sur le même réseau afin d'en émuler un) et un langage serveur ( comme du php ) et une base de données ( mysql par exemple )
le code que tu nous montres c'est du html/javascript.
Je pense que tu voudrais que ce compteur soit accessible depuis plusieurs appareils .... et dans ce cas, il va te falloir un serveur (ou au moins un ordi qui se trouverai sur le même réseau afin d'en émuler un) et un langage serveur ( comme du php ) et une base de données ( mysql par exemple )
Voici ce qui me parait le plus simple :
index.html
Ensuite le write.php
et puis je viens afficher dans mon compteur.php le resultat :
Bon j'ai il n'y a aucune écriture, j'ai le message "error" et non "Success"
index.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
</head>
<body>
<input id="increaseNumber" type="button" value="+" style="font-size:24pt; width: 50px; height: 50px;"><br>
<input id="textBox" type="text" value="0" style="font-size:24pt; width: 40px; height: 40px;">
<label style="font-size:24pt;"></label><br>
<input id="decreaseNumber" type="button" value="-" style="font-size:24pt; width: 50px; height: 50px;"><br>
<script>
$("#decreaseNumber").on("click", function(){
$("#textBox").val(parseInt($("#textBox").val()) -1);
writeToFile($("#textBox").val());
})
$("#increaseNumber").on("click", function(){
$("#textBox").val(parseInt($("#textBox").val()) +1);
writeToFile($("#textBox").val());
})
function writeToFile(value){
$.ajax({
url: 'write.php?v=' + value,
type: 'GET',
dataType: 'json',
success: function(ret){
alert('Success!');
},
error: function(ret){
alert('Error!');
}
});
}
</script>
</body>
</html>
Ensuite le write.php
<?php
$myfile = fopen("compteur.txt", "w") or die("Unable to open file!");
$txt = "value = " . $_GET['v'];
fwrite($myfile, $txt);
fclose($myfile);
?>
et puis je viens afficher dans mon compteur.php le resultat :
<?php
$fichier = 'compteur.txt';
if ( (file_exists($fichier)) && (is_readable($fichier)) ){
$text = file_get_contents($fichier);
echo $text;
}
else
{
echo 'Le fichier '.$fichier.' n\'existe pas ou n\'est pas disponible en ouverture';
}
?>
Bon j'ai il n'y a aucune écriture, j'ai le message "error" et non "Success"
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 718
3 déc. 2020 à 19:08
3 déc. 2020 à 19:08
Déjà, pense à indiquer le LANGAGE dans les balises de code afin d'avoir la coloration syntaxique
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, au lieu de simple "alert" place des console.log et regarde dans la console de ton navigateur.
A noter, que pour debuguer de l'ajax, il est plus simple d'utiliser firefox ( et bien penser à activer le debug xhr )
Tu peux aussi regarder les lignes correspondantes à tes appels ajax (dans la console, en dépliant la ligne et en regardant dans les onglet requete et réponse )
Pense également que ton ajax attend une réponse au format JSON
donc au lieu de
faire
idem pour le message d'erreur
il serait bien également d'activer l'affichage des erreurs PHP
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
*
Pour finir, au niveau de ton ajax, au lieu de faire du GET (surtout pour écrire..) je ferai du POST
et donc, dans le php
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, au lieu de simple "alert" place des console.log et regarde dans la console de ton navigateur.
success: function(ret){ console.log('Success Ajax',ret); alert('Success!'); }, error: function(ret){ console.log('Erreur Ajax',ret); alert('Error!'); }
A noter, que pour debuguer de l'ajax, il est plus simple d'utiliser firefox ( et bien penser à activer le debug xhr )
Tu peux aussi regarder les lignes correspondantes à tes appels ajax (dans la console, en dépliant la ligne et en regardant dans les onglet requete et réponse )
Pense également que ton ajax attend une réponse au format JSON
donc au lieu de
echo $text;
faire
echo json_encode($text);*
idem pour le message d'erreur
echo json_encode('Le fichier '.$fichier.' n\'existe pas ou n\'est pas disponible en ouverture');
il serait bien également d'activer l'affichage des erreurs PHP
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
*
Pour finir, au niveau de ton ajax, au lieu de faire du GET (surtout pour écrire..) je ferai du POST
$.ajax({ url: 'write.php'; type:'POST', data: {v: value},
et donc, dans le php
$v = !empty($_POST['v']) ? $_POST['v'] : 0; $txt = $v ; // conserve la donnée en "nombre" ... ça sera plus simple pour la traiter ensuite ( addition, soustraction... )
Mentinecle
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 déc. 2020 à 09:18
4 déc. 2020 à 09:18
Merci pour toutes ces informations.
Le systeme fonctionne bien et fera bien le travail le jour J.
MErci encore.
Le systeme fonctionne bien et fera bien le travail le jour J.
MErci encore.
3 déc. 2020 à 16:01
En effet, la solution du php/mysql m'avait traversé l'esprit.
J'avais en tête quelque chose qui me paraissait plus simple :
J'essaye de modifier l'exemple de mon poste, pour enregistrer chaque + et chaque - dans un fichier texte, généré en php.
En gros. lorsque je vais cliquer sur le + mon "compteur.txt" enregistrera le "1" puis le 2,3,4,5.... idem pour le -
Sur mon écran d'affichage, je viens appeler sur une page compteur.php quelque chose comme ça:
Mais je dois bien avouer que le PHP n'est pas ma spécialité.