• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Javascript, PHP und MySQL

siod

New member
Hallo zusammen,

schaut Euch mal meinen Code an:

Code:
<html>
<head>

<style type="text/css">
body {background-color: #818181;} 

#LampTv {
    position: absolute;
    left: 900px;
    top: 1000px;
    z-index: 1;
}
#LampSofa {
    position: absolute;
    left: 1280px;
    top: 1000px;
    z-index: 1;
}
#XBMC {
    position: absolute;
    left: 900px;
    top: 850px;
    z-index: 1;
}
</style>



<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home-Page</title>
</head>
<body>
<?php
    //Verbindung zur Datenbank herstellen
    mysql_connect("localhost", "root","") or die ("Verbindung nicht möglich");
    mysql_select_db("homecontrol") or die ("Datenbank existiert nicht");
 
    //Lampe Couch auswählen
    $Funk1 = mysql_query("SELECT zustand FROM `funksteckdosen` WHERE standort="Lampe Couch" ");
?>

<script>

//Funktion für Lampen
function Lampe(Url) {
	var xmlhttp;
    if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	}
    else 
	{
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
	xmlhttp.onreadystatechange = function () 
	{
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
		{
		//document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
		}
		}
		xmlhttp.open("GET", Url , true);
        xmlhttp.send();
    }    
	
//Grafikewechsel bei klick Funktion
var SwitchImg = new Array();

// hier werden die URLs der Grafiken eingetragen

SwitchImg[1] = "ligthbulb_off.png";
SwitchImg[2] = "ligthbulb_on.png";
SwitchImg[3] = "raspi_off.png";
SwitchImg[4] = "raspi_on.png";


LampFlag = 'on'

	function Tauschen(DeviceId, x, y)
	{
	  if (LampFlag == 'on'){
	  document.getElementById(DeviceId).src = SwitchImg[x];
	  LampFlag='off'
	  }
	  else
	  {
	  document.getElementById(DeviceId).src = SwitchImg[y];
	  LampFlag='on'
	  }
	}

		
</script>

<!Hintergrundbild = Wohnung>
<img src="bg_image.svg" id="background">
<!Link zur TV Lampe Wohnzimmer>
<img id="LampTv" onclick="Tauschen('LampTv', '1', '2'), Lampe('http://192.168.1.66/index.html?schalte&3')" src="ligthbulb_off.png">
<!Link zur Sofa Lampe Wohnzimmer>
<img id="LampSofa" onclick="Tauschen('LampSofa', '1', '2'), Lampe('http://192.168.1.66/index.html?schalte&1')" src="ligthbulb_off.png">
<!Link zum XBMC Raspberry Pi>
<img id="XBMC" onclick="Tauschen('XBMC', '3', '4'), Lampe('http://192.168.1.66/index.html?schalte&2')" src="raspi_off.png">
</body>
</html>

Ich habe eine Website mit dem Grundriss meiner Wohnung erstellt sowie ein paar buttons eingefügt über die ich diverse Funksteckdosen schalten kann. Nun möchte ich mir den jeweiligen Zustand jeder Funksteckdose, also An oder Aus, in einer Datenbank speichern, auslesen und jeweils die Grafik der Funksteckdose als ein- oder ausgeschaltet darstellen. Die Datenbank habe ich mir bereits erstellt und wie ihr seht habe ich auch schon PHP code eingefügt um eine Verbindung zur Datenbank herzustellen. Wie kann ich nun mittels einer If Funktion wie z.B. "If Funk1 = An {Lampengrafik An benutzen else Lampengrafik Aus}" eine Verbindung zwischen PHP und Javascript in meiner HTML Datei herstellen?
 
Also du solltest dein JS-Design nochmal gründlich überdenken. Das kann so nicht funktionieren. Wenn du eine globale Variable (globale Variablen sollte man sowieso möglichst wenig verwenden) für den Schaltezustand von drei Schaltern vorhältst.

Zu deinem PHP-Problem: was hast du denn genau probiert?
Ich Grunde genommen hast du es ja schon mit
wie z.B. "If Funk1 = An {Lampengrafik An benutzen else Lampengrafik Aus}"
angedeutet. Du liest die DB aus und dann machst du bei der Ausgabe des HTML für die <img> ein if, das dann per echo die unterschiedlichen URLs ausgibt.


PS: dein HTML ist invalide. Jag' das mal durch einen Validator.
PPS: den Array-Konstruktor sollte man in JS besser nicht verwenden. Die Literalschreibweise ist konsistenter, kürzer und (meiner Meinung nach) besser zu lesen.
PPPS: mysql_... ist in PHP deprecated. Der Nachfolger ist mysqli oder PDO - ich persönlich finde PDO besser.
 
Zurück
Oben