Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1559 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Sauvegarder choix checkbox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sauvegarder choix checkbox

n°2219819
splint33
Posté le 16-02-2014 à 14:20:58  profilanswer
 

Bonjour, je monte petit à petit un projet pour le lycée sur un Raspberry Pi.
Ce projet transforme le Raspberry en serveur domotique pour la maison, avec interface web.
Pour le moment, il est plutôt simple: Depuis le web, je peux activer / désactiver des sorties, ainsi que visualiser une webcam.
Je souhaiterais simplement que, quand l'utilisateur décide d'activer la sortie 5, par exemple, et qu'il valide, lors du retour sur la page d'accueil, la sortie 5 soit déjà cochée, l'utilisateur l'ayant activée.
 
Voici mes codes déjà présents:
 
index.php

Code :
  1. <form action="go.php"
  2. method=post>
  3. <center>Quelles sorties souhaitez-vous activer ?<br><br>
  4. <input type="checkbox" name="1" value="0x01">Sortie 1<br>
  5. <input type="checkbox" name="2" value="0x02">Sortie 2<br>
  6. <input type="checkbox" name="3" value="0x04">Sortie 3<br>
  7. <input type="checkbox" name="4" value="0x08">Sortie 4<br>
  8. <input type="checkbox" name="5" value="0x10">Sortie 5<br>
  9. <input type="checkbox" name="6" value="0x20">Sortie 6<br>
  10. <input type="checkbox" name="7" value="0x40">Sortie 7<br>
  11. <input type="checkbox" name="8" value="0x80">Sortie 8<br>
  12. <br>
  13. <P>
  14. <input type="submit" value="Envoyer">
  15. </form>
  16. <iframe src="http://192.168.1.12:8081" width="160" height="120" ></iframe>
  17. </center>


 
go.php  
(Script qui calcule une valeur hexadécimale pour renvoyer le bon ordre au Raspberry)

Code :
  1. <?php
  2. // Récupération des variables du formulaire
  3. $var1 = $_POST['1'];
  4. $var2 = $_POST['2'];
  5. $var3 = $_POST['3'];
  6. $var4 = $_POST['4'];
  7. $var5 = $_POST['5'];
  8. $var6 = $_POST['6'];
  9. $var7 = $_POST['7'];
  10. $var8 = $_POST['8'];
  11. $sum = $var1 + $var2 + $var3 + $var4 + $var5 +$var6 +$var7 + $var8;
  12. $hexsum = dechex ($sum);
  13. $link_address='http://192.168.1.12:8000/?output_port=0x'.$hexsum;
  14. ?>
  15. <head>
  16. <meta http-equiv="refresh" content="3; URL=http://192.168.1.12">
  17. </head>
  18. <center><font size="4">Sorties actualis&eacute;es !<br><br>Retour au menu...</font></center>
  19. <iframe src="<?php echo $link_address;?>" width="0" height="0" ></iframe>
  20. <meta http-equiv="refresh" content="1;url=http://192.168.1.12" />


 
Pour l'instant le site fonctionne comme il le devrait, mais ne garde pas coché les sorties déjà activés par l'utilisateur.
Merci d'avance pour votre aide.

mood
Publicité
Posté le 16-02-2014 à 14:20:58  profilanswer
 

n°2219832
torwood3
Posté le 16-02-2014 à 17:08:48  profilanswer
 

Bonjour,
 
je suis interessé par ton script pour la caméra :p  
 
Mais pour ton "soucis", il suffit de rajouter selon le choix de l'utilisateur l'élément checked à l'input :
<input type="checkbox" name="vehicle" value="Car" <?php if( Condition )echo  checked; ?> >
 
 


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
n°2219833
splint33
Posté le 16-02-2014 à 19:02:09  profilanswer
 

J'utilise simplement motion sur mon raspberry pour la vidéo.
 
Je cherche simplement à garder en mémoire les sorties déjà actives par l'utilisateur, et donc cocher automatiquement celle déjà actives dans le menu.

n°2219845
torwood3
Posté le 16-02-2014 à 22:10:57  profilanswer
 

Hum... stocker ce qu'il a deja cocher.
Donc tu as plusieurs solution, tu peux y aller avec des cookies, des sessions ou coté serveur avec un fichier d'état (ou context).
L'idée c'est que lors de l'envoie du formulaire, tu enregistres la modification dans un fichier. Puis tu coches en fonction de l'état (deja actif ou non).
 
tu vois l'idée ? ^^"


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
n°2219942
splint33
Posté le 17-02-2014 à 16:29:41  profilanswer
 

Exactement, c'est parfaitement ça que je souhaite faire.
J'avais pensé à un fichier .txt, ou du mysql, mais comment faire ?
Je suis une bouze en php ;)

n°2219966
torwood3
Posté le 17-02-2014 à 20:19:03  profilanswer
 

Si tu as peu d'utilisateur, le plus simple c'est le fichier.
 
Donc tu appel ton fichier comme tu veux ^^'  
tu enregistres avec file_put_contents()
et tu récup avec file_get_contents()
regarde du coté du JSON aussi, c'est pas mal pour stocker :p
 
essaye, on te corrigera au pire.


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
n°2219973
splint33
Posté le 17-02-2014 à 22:21:48  profilanswer
 

Ok merci !
Je regarderais ça demain.
Je n'ai qu'un utilisateur, moi, car c'est pour un projet au lycée, qui sera évalué au bac (coefficient 2)
 
Merci :)

n°2220081
splint33
Posté le 18-02-2014 à 17:53:20  profilanswer
 

Merci beaucoup, j'ai réussi !
J'ai sans doute fais une méthode "bourrin" mais elle marche !
En fait, l'état de chaque checkbox est sauvegardé dans son propre fichier .txt, et une simple condition dans les checkbox de la page index avec if fichier.txt contient variable, alors checked :)
 
Voici le code pour d'autres personnes éventuellement dans le même cas que moi :)
 
index.php

Code :
  1. <form action="go.php"
  2. method=post>
  3. <center>Quelles sorties souhaitez-vous activer ?<br><br>
  4. <input type="checkbox" name="1" value="0x01" <?php if(file_get_contents("mem01.txt" ) == 0x01) echo 'checked'; ?> />Sortie 1<br>
  5. <input type="checkbox" name="2" value="0x02" <?php if(file_get_contents("mem02.txt" ) == 0x02) echo 'checked'; ?> />Sortie 2<br>
  6. <input type="checkbox" name="3" value="0x04" <?php if(file_get_contents("mem03.txt" ) == 0x04) echo 'checked'; ?> />Sortie 3<br>
  7. <input type="checkbox" name="4" value="0x08" <?php if(file_get_contents("mem04.txt" ) == 0x08) echo 'checked'; ?> />Sortie 4<br>
  8. <input type="checkbox" name="5" value="0x10" <?php if(file_get_contents("mem05.txt" ) == 0x10) echo 'checked'; ?> />Sortie 5<br>
  9. <input type="checkbox" name="6" value="0x20" <?php if(file_get_contents("mem06.txt" ) == 0x20) echo 'checked'; ?> />Sortie 6<br>
  10. <input type="checkbox" name="7" value="0x40" <?php if(file_get_contents("mem07.txt" ) == 0x40) echo 'checked'; ?> />Sortie 7<br>
  11. <input type="checkbox" name="8" value="0x80" <?php if(file_get_contents("mem08.txt" ) == 0x80) echo 'checked'; ?> />Sortie 8<br>
  12. <br>
  13. <P>
  14. <input type="submit" value="Envoyer">
  15. </form>
  16. <iframe src="8081.php" width="160" height="120" ></iframe>
  17. </center>


 
go.php

Code :
  1. <?php
  2. // Récupération des variables du formulaire
  3. $var1 = $_POST['1'];
  4. $var2 = $_POST['2'];
  5. $var3 = $_POST['3'];
  6. $var4 = $_POST['4'];
  7. $var5 = $_POST['5'];
  8. $var6 = $_POST['6'];
  9. $var7 = $_POST['7'];
  10. $var8 = $_POST['8'];
  11. $sum = $var1 + $var2 + $var3 + $var4 + $var5 +$var6 +$var7 + $var8;
  12. $hexsum = dechex ($sum);
  13. $file = 'mem01.txt';
  14. file_put_contents($file, $var1);
  15. $file = 'mem02.txt';
  16. file_put_contents($file, $var2);
  17. $file = 'mem03.txt';
  18. file_put_contents($file, $var3);
  19. $file = 'mem04.txt';
  20. file_put_contents($file, $var4);
  21. $file = 'mem05.txt';
  22. file_put_contents($file, $var5);
  23. $file = 'mem06.txt';
  24. file_put_contents($file, $var6);
  25. $file = 'mem07.txt';
  26. file_put_contents($file, $var7);
  27. $file = 'mem08.txt';
  28. file_put_contents($file, $var8);
  29. $link_address='8000.php?output_port=0x'.$hexsum;
  30. ?>
  31. <head>
  32. <meta http-equiv="refresh" content="3; URL=/">
  33. </head>
  34. <center><font size="4">Sorties actualis&eacute;es !<br><br>Retour au menu...</font></center>
  35. <iframe src="<?php echo $link_address;?>" width="0" height="0" ></iframe>


 
Au départ, j'avais eu quelques problèmes, rien n'était écrit dans les fichiers textes... N'oubliez pas d'attribuer la permission lecture et écriture aux fichiers texte ! :)
 
Encore merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Sauvegarder choix checkbox

 

Sujets relatifs
Avis sur choix nom de domaineChoix d'un framework pour une application hybride
Aide choix langagechoix base nosql
[Résolu] Choix d'un CMS : Joomla ou Wordpress ?bouton ajouter , sauvegarder acess et vb.net
faire apparaitre une partie de la page selon choix dans menu[Choix Techno] modification de fichier
Upload fichier avec choix dossier destination[C] Comment sauvegarder lors d'un remplissage de fichier?
Plus de sujets relatifs à : Sauvegarder choix checkbox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR