Holgip
Lt. Commander
- Registriert
- Dez. 2012
- Beiträge
- 1.779
Hallo liebe Programmierer,
ich habe ein kleines RaspberryPi-Projekt, mit dem ich meine Steckdosenleiste für meinen kleinen "Server" (Zotac ID14 mit 3xUSB-Festplatten, insgesamt 4 Steckdosen) steuern kann. Für die Steuerung habe ich folgende Dateien erstellt:
Eine HTML-Datei, die die Oberfläche zur Verfügung stellt und auch die PHP-Routinen zum Aufruf der einzelnen php-Dateien beinhaltet. Sie läuft als php-Datei, damit alles funktioniert und der Apache-Server auf dem Pi ist dementsprechend konfiguriert.
Für jede Festplatten-Steckdose zwei php-Dateien, die die Python-Dateien aufrufen, die wiederum die GPIOs steuern (ja ich weiß, von hinten durch die Brust ins Auge, aber bei meinen beschränkten Programmierkenntnissen war das jetzt der einfachste Weg).
Für den "Server" eine php-Datei zum Einschalten und eine zum Ausschalten, die gleich alles ausschaltet.
Das Ganze funktioniert auch einwandfrei.
Jetzt bin ich auf die verrückte Idee gekommen, beim Abschalten von allen Steckdosen eine Abfrage, ob auch wirklich ausgeschaltet werden soll, zu implementieren. Zum Testen und der Übersicht halber habe ich die Original-html-Datei "verschlankt", d.h. nur noch die Steuerung vom "Server" und einer Festplatte drin gelassen, und unter einem anderen Namen (komisch.php) abgespeichert.
Vornweg: ich weiß, dass Javascript auf dem Client und php auf dem Server (bei mir der Pi) läuft, aber leider kann man mit php keine Abfragebox erstellen und so musste ich auf JS zurück greifen. Da ich wenig Ahnung von JS und Ajax habe und das mit meinem doch schon älteren Hirn nicht so kapiere, versuchte ich mich an den Beispielen, die man im Internet findet.
Das Problem ist die Übergabe des angeklickten Buttons (Ja oder Abbruch) von JS an php. Ich bekomme den Wert partout nicht in php, solange die JS-Box in einer php-If-Routine läuft (es geht um die Zeilen 44 bis 68).
Erst probierte ich es mit "document.write", dann mit jQuery, leider ohne Erfolg.
Die Box wird zwar angezeigt, aber der Wert wird nicht übergeben.
echo = "mist" wird noch angezeigt, aber die Variable $ja ist leer, also wird auch Script "austest.php" nicht ausgeführt, das die Abschaltung übernimmt.
Wie bekomme ich den angeklickten Button nach php, wo ich ihn dann auswerten kann? Leider finde ich im Internet keine entsprechenden Beispiele.
Bitte in einfachen Worten erklären.
Hier die HTML-Datei:
ich habe ein kleines RaspberryPi-Projekt, mit dem ich meine Steckdosenleiste für meinen kleinen "Server" (Zotac ID14 mit 3xUSB-Festplatten, insgesamt 4 Steckdosen) steuern kann. Für die Steuerung habe ich folgende Dateien erstellt:
Eine HTML-Datei, die die Oberfläche zur Verfügung stellt und auch die PHP-Routinen zum Aufruf der einzelnen php-Dateien beinhaltet. Sie läuft als php-Datei, damit alles funktioniert und der Apache-Server auf dem Pi ist dementsprechend konfiguriert.
Für jede Festplatten-Steckdose zwei php-Dateien, die die Python-Dateien aufrufen, die wiederum die GPIOs steuern (ja ich weiß, von hinten durch die Brust ins Auge, aber bei meinen beschränkten Programmierkenntnissen war das jetzt der einfachste Weg).
Für den "Server" eine php-Datei zum Einschalten und eine zum Ausschalten, die gleich alles ausschaltet.
Das Ganze funktioniert auch einwandfrei.
Jetzt bin ich auf die verrückte Idee gekommen, beim Abschalten von allen Steckdosen eine Abfrage, ob auch wirklich ausgeschaltet werden soll, zu implementieren. Zum Testen und der Übersicht halber habe ich die Original-html-Datei "verschlankt", d.h. nur noch die Steuerung vom "Server" und einer Festplatte drin gelassen, und unter einem anderen Namen (komisch.php) abgespeichert.
Vornweg: ich weiß, dass Javascript auf dem Client und php auf dem Server (bei mir der Pi) läuft, aber leider kann man mit php keine Abfragebox erstellen und so musste ich auf JS zurück greifen. Da ich wenig Ahnung von JS und Ajax habe und das mit meinem doch schon älteren Hirn nicht so kapiere, versuchte ich mich an den Beispielen, die man im Internet findet.
Das Problem ist die Übergabe des angeklickten Buttons (Ja oder Abbruch) von JS an php. Ich bekomme den Wert partout nicht in php, solange die JS-Box in einer php-If-Routine läuft (es geht um die Zeilen 44 bis 68).
Erst probierte ich es mit "document.write", dann mit jQuery, leider ohne Erfolg.
Die Box wird zwar angezeigt, aber der Wert wird nicht übergeben.
echo = "mist" wird noch angezeigt, aber die Variable $ja ist leer, also wird auch Script "austest.php" nicht ausgeführt, das die Abschaltung übernimmt.
Wie bekomme ich den angeklickten Button nach php, wo ich ihn dann auswerten kann? Leider finde ich im Internet keine entsprechenden Beispiele.
Bitte in einfachen Worten erklären.
Hier die HTML-Datei:
Code:
<!DOCTYPE HTML>
<html>
<head>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body style="background-image:url(hintergrund.jpg)">
<font face="Arial">
<center>
<br>
<br>
<table>
<tr>
<th>
<!-- ***************************************Server schalten******************************************** -->
<font face="Arial">Server</font>
<form name="form1" method="POST" action="komisch.php">
<br>
<input type="image" src="ein.png" height="40px" width="40px" alt="Server" name="serverein">
<br>
<input type="image" src="aus.png" height="40px" width="40px" alt="Server" name="serveraus">
</form>
<?php
if(shell_exec('gpio -g read 17')==0){
if(isset($_POST['serverein_x'])&& isset($_POST['serverein_y'])){
include("servertest.php");
}
$server = "Server.png";
}
if(shell_exec('gpio -g read 17')==1){
if(isset($_POST['serveraus_x'])&& isset($_POST['serveraus_y'])){
$ja=0;
echo '<script type="text/javascript">
<!--
if(window.confirm("Wirklich abschalten?") == true)
{
data = 1;
var request = new XMLHttpRequest();
request.open("POST", "komisch.php", false);
request.setRequestHeader("Content-Type", "application/x-www-formurlencoded");
request.send("a="+data);
}
// -->
</script>';
echo "mist";
}
$ja = $_POST['a'];
echo $ja;
if($ja==1)
{
include ("austest.php");
}
$server = "Server_on.jpg";
}
?>
</th>
<th>
<img src="<?php echo $server; ?>">
</th>
<th>
ACHTUNG!<br>Vergewissern, dass niemand<br>mehr auf den Server zugreift!<br>Hiermit wird alles ausgeschaltet!</th>
<th></th>
<!*****************************************************************************************************-->
<th><img src="leer.png"></th>
<th>
<!-- ***************************************Backup schalten******************************************* -->
Backup Festplatte
<form name="form4" method="POST" action="komisch.php">
<br>
<input type="image" src="ein.png" height="40px" width="40px" alt="Backup" name="backupein">
<br>
<input type="image" src="aus.png" height="40px" width="40px" alt="Backup" name="backupaus">
</form>
<?php
$backup = "Backup.png";
if(shell_exec('gpio -g read 17')==1){
if(shell_exec('gpio -g read 23')==0){
if(isset($_POST['backupein_x'])&& isset($_POST['backupein_y'])){
include("backuptest.php");
}
$backup = "Backup.png";
}
if(shell_exec('gpio -g read 23')==1){
if(isset($_POST['backupaus_x'])&& isset($_POST['backupaus_y'])){
include("backup_austest.php");
}
$backup = "Backup_on.jpg";
}
}
?>
</th>
<th>
<img src="<?php echo $backup; ?>">
</th>
</tr>
<!*****************************************************************************************************-->
</table>
</center>
</body>
</html>