Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sterowanie skryptami Raspberry przyciskami na stronie www
Forum PHP.pl > Forum > PHP
kitarro
Hej,

mam stronę napisaną w php, na której posiadam parę (narazie) przycisków którymi wywołuję skrypty w Malince. Wszystko działa jak należy, klikam przycisk, pod którymi kryje funkcja realizująca zadanie, np
system("sudo /home/pi/skrypt.py")
Skrypt się wykonuję, ale chciałbym pozbyć się paru problemów, które posidam.
Po kliknięciu na przycisk, cała strona zostaje zatrzymana i nie mogę w tym czasie podglądać aktualnej wartości zmiennych.

Dla zobrazowania umieszczam źródło storny:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="style.css" />
  4. </title>
  5. <script type="text/javascript">
  6. function zmien(com, nr) {
  7. el = document.forms["form1"];
  8. el.elements["com"].value = com;
  9. el.submit();
  10. }
  11. </script>
  12. </head>
  13. <body>
  14.  
  15. <hr>
  16. <form id="form1" action="<? echo $PHP_SELF ?>" method="post" style="text-align:center">
  17. <input type="hidden" name="com" value=""/>
  18. <br><br>
  19. <button onclick="zmien('1')"> skrypt 1 </button>
  20. <button onclick="zmien('2')"> skrypt 2 </button>
  21. <button onclick="zmien('3')"> skrypt 3 </button>
  22. </form>
  23.  
  24. <pre>
  25. <?php
  26. $com = stripslashes($_POST["com"]);
  27. #$nr = (int)stripslashes($_POST["nr"]);
  28. #echo "$com, $nr";
  29. if ($com == "1") {
  30. system("sudo /home/pi/skrypt1.py");
  31. }
  32. if ($com == "2") {
  33. system("sudo /home/pi/skrypt2.py");
  34. }
  35. if ($com == "3") {
  36. system("sudo /home/pi/skrypt3.py");
  37. }
  38.  
  39. </body>
  40. </html>


Chciałbym, aby w chwili kiedy nacisnę na przycisk, strona była cały czas dostępna. A nie jak to teraz ma miejsce jest całkowicie zamrożona na czas wykonywania skryptu.
Próbowałem zrobić osobną stroną dla przycisków w php i includować ją do głównej, ale w efekcie ten sam efekt.

Proszę o podpowiedzi/sugestię jak to zrobić aby kod się wykonywał nie zależnie od działania strony.

pedro84
Poczytaj o AJAXie, to jest rozwiązanie.
kitarro
Mogę prosić o przykład wykorzystania, tego mechanizmu?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.