Hallo liebes Forum,
ich sitze jetzt seit zwei Tagen an einem Problem und komme einfach nicht weiter. Ich bin noch ein blutiger Anfänger in JS, aber komme mit Tutorials lesen im Moment einfach nicht mehr weiter.
Ich möchte über ein lokales Webinterface auf dem ein Colorpicker in Javascript läuft einen RGB String setzen und jedes mal wenn der Wert des RGB String sich verändert einen Shell Befehl ausführen, der eine LED Leiste ansteuert. Der Server auf dem das Webinterface und auch die Ansteuerung der LED liegt ist ein Raspberry Pi.
Mein Frage ist nun, da das Javascript ja Client seitig ausgeführt wird und somit keine Shell Befehle auf dem Server umsetzen kann: Wie übertrage ich die Variable am besten in PHP? Hier habe ich bisher einige Methoden gefunden die Trennung zwischen Server(PHP) und Client(JS) zu überbrücken. Am vielversprechendsten scheint mir Ajax zu sein, allerdings laufe ich immer wieder in neue Probleme und erhalte keine funktionierende Lösung.
Der verwendete Colorpicker setzt während der Farbauswahl permanent den RGB String neu, was ich gut finde, da die Farbe der LED Leiste am besten in Echtzeit geändert werden soll.
Eigentlich sollte es doch nicht so schwer sein, diesen String nun in Echtzeit an PHP zu übergeben und immer wenn er sich ändert die entsprechende Shell auszuführen.
Ajax scheint mir deswegen so vielversprechend, da es im Hintergrund läuft und kein Neuladen der Seite erfordert. Ein Neuladen ist bei dieser Anwendung allerdings nicht sinnvoll, da die Seite dann jedes mal neu geladen würde wenn der Cursor sich über dem Colorpicker bewegt.
Ich hänge meinen bisherigen Quellcode mit dem, wie ich denke, bisher besten Chancen auf Erfolg an. In diesem habe ich versucht die Variable in eine externe PHP Datei zu überführen und dort weiter zu benutzen. An den Stellen wo es hapert habe ich Kommentare eingefügt.
skript.php
transfer.php
Ich würde mich freuen, wenn Ihr mir einen Denkanstoß geben könnt, wo ich ansetzen kann um das Problem zu lösen.
Viele Grüße
David
ich sitze jetzt seit zwei Tagen an einem Problem und komme einfach nicht weiter. Ich bin noch ein blutiger Anfänger in JS, aber komme mit Tutorials lesen im Moment einfach nicht mehr weiter.
Ich möchte über ein lokales Webinterface auf dem ein Colorpicker in Javascript läuft einen RGB String setzen und jedes mal wenn der Wert des RGB String sich verändert einen Shell Befehl ausführen, der eine LED Leiste ansteuert. Der Server auf dem das Webinterface und auch die Ansteuerung der LED liegt ist ein Raspberry Pi.
Mein Frage ist nun, da das Javascript ja Client seitig ausgeführt wird und somit keine Shell Befehle auf dem Server umsetzen kann: Wie übertrage ich die Variable am besten in PHP? Hier habe ich bisher einige Methoden gefunden die Trennung zwischen Server(PHP) und Client(JS) zu überbrücken. Am vielversprechendsten scheint mir Ajax zu sein, allerdings laufe ich immer wieder in neue Probleme und erhalte keine funktionierende Lösung.
Der verwendete Colorpicker setzt während der Farbauswahl permanent den RGB String neu, was ich gut finde, da die Farbe der LED Leiste am besten in Echtzeit geändert werden soll.
Eigentlich sollte es doch nicht so schwer sein, diesen String nun in Echtzeit an PHP zu übergeben und immer wenn er sich ändert die entsprechende Shell auszuführen.
Ajax scheint mir deswegen so vielversprechend, da es im Hintergrund läuft und kein Neuladen der Seite erfordert. Ein Neuladen ist bei dieser Anwendung allerdings nicht sinnvoll, da die Seite dann jedes mal neu geladen würde wenn der Cursor sich über dem Colorpicker bewegt.
Ich hänge meinen bisherigen Quellcode mit dem, wie ich denke, bisher besten Chancen auf Erfolg an. In diesem habe ich versucht die Variable in eine externe PHP Datei zu überführen und dort weiter zu benutzen. An den Stellen wo es hapert habe ich Kommentare eingefügt.
skript.php
Code:
...
$('#picker').colpick({ <!-- Colorpicker Einstellungen -->
flat:true,
layout:'hex',
submit:0,
colorScheme: 'dark',
onChange:function(hsb,hex,rgb,el,bySetColor){
console.log(rgb); <!-- Check ob die variable rgb richtig gesetzt wird (ja wird sie)-->
$.post('/transfer.php','rgbval='+rgb); <!-- Überttragung der Variable in die Datei transfer.php -->
}
});
Code:
<?php
$rgb = $_REQUEST['rgbval']; <!-- Empfang der Variable rgbval aus dem JS -->
echo "Der RGB Wert ist {$rgb}" <!-- Ausgabe des Wertes (funktioniert nicht) -->
?>
Ich würde mich freuen, wenn Ihr mir einen Denkanstoß geben könnt, wo ich ansetzen kann um das Problem zu lösen.
Viele Grüße
David