Hallo,
ich möchte auf meiner ersten selbst erstellten Homepage im meinem LAN diverse Funksteckdosen ansteuern. Dazu klicke ich auf ein Lampensymbol, die Funksteckdose wird geschaltet und ein Eintrag in einer Datenbank vorgenommen (An oder Aus). Alles klappt soweit.
Leider bekomme ich es jedoch nicht hin, dass das image der Lampe nach einem Klick von "An" auf "Aus" geändert wird, ohne das ich den refresh button des Browsers drücken muss. Ich bin jetzt soweit, dass ich mit Ajax genau dies eigentlich hinbekomme, aber es verhält sich sehr komisch. Klicke ich beim ersten Mal auf das Lampensymbol, passiert gar nichts, beim 2. Klick wird der Befehle dann gleich 2 mal ausgeführt, beim 3. Mal 3 mal usw. . Ich kann mir das nicht erklären, unten mal mein Code:
Irgend eine Idee? Ich versuche es nun schon seit Wochen hin zu bekommen, ist halt alles neu für mich... Danke für Eure Hilfe!
ich möchte auf meiner ersten selbst erstellten Homepage im meinem LAN diverse Funksteckdosen ansteuern. Dazu klicke ich auf ein Lampensymbol, die Funksteckdose wird geschaltet und ein Eintrag in einer Datenbank vorgenommen (An oder Aus). Alles klappt soweit.
Leider bekomme ich es jedoch nicht hin, dass das image der Lampe nach einem Klick von "An" auf "Aus" geändert wird, ohne das ich den refresh button des Browsers drücken muss. Ich bin jetzt soweit, dass ich mit Ajax genau dies eigentlich hinbekomme, aber es verhält sich sehr komisch. Klicke ich beim ersten Mal auf das Lampensymbol, passiert gar nichts, beim 2. Klick wird der Befehle dann gleich 2 mal ausgeführt, beim 3. Mal 3 mal usw. . Ich kann mir das nicht erklären, unten mal mein Code:
HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<title>Home-Page</title>
<link rel="stylesheet" type="text/css" href="design.css">
</head>
<body>
<!--Script Bereich-->
<script>
//Funktion für Lampen
function change_state(){
$('#LampTV').click(function() {
var LampTVObj = $(this);
$.ajax({
type: "POST",
url: 'PHP/updateStateLampeTV.php',
success: function(data) {
//In your php you need to echo the URL of the status image
//like this
//echo 'http://example.com/images/online.png';
$(LampTVObj).attr('src', data);
return false;
}
});
});
}
</script>
<!--Script Bereich ENDE-->
<?php
include ("PHP/icon_state.php");
error_reporting(-1);
ini_set('display_errors', TRUE);
?>
<img id="LampTV" src="<?php Lampe($qLTV, $queryLTV); ?>" onclick='change_state()'>
</body>
</html>
PHP:
<?php
error_reporting(-1);
ini_set('display_errors', TRUE);
// Connect to MySQL
include("dbconnect.php");
//Funktion zur Abfrage des aktuellem Zustandes in der Datenbank
// Datenbank auswählen
mysql_select_db("homecontrol") or die(mysql_error());
// SQL-Query
$queryLTV = "SELECT Zustand FROM `funksteckdosen` WHERE Standort= 'Lampe TV'";
// Query ausführen (die Datensatzgruppe $rs enthält das Ergebnis)
$qLTV = mysql_query($queryLTV);
//Status Lampe
function statusLampe(){
global $queryLTV;
global $qLTV;
while ($datensatz = mysql_fetch_assoc($qLTV)){
$z = $datensatz['Zustand'];
}
if ($z == "An"){
$SQL = "UPDATE funksteckdosen SET Zustand = 'Aus' WHERE `funksteckdosen`.`Standort` = 'Lampe TV'";
// Execute SQL statement
mysql_query($SQL);
echo "../gfx/ligthbulb_on.png";
}
elseif($z == "Aus"){
$SQL = "UPDATE funksteckdosen SET Zustand = 'An' WHERE `funksteckdosen`.`Standort` = 'Lampe TV'";
// Execute SQL statement
mysql_query($SQL);
echo "../gfx/ligthbulb_off.png";
}
}
statusLampe();
?>
Irgend eine Idee? Ich versuche es nun schon seit Wochen hin zu bekommen, ist halt alles neu für mich... Danke für Eure Hilfe!