php und javascript ?

LoMo

Erfahrenes Mitglied
Hi,

gibt es irgendwie eine Möglichkeit aus einer javascript Funktion eine php Funktion aufzurufen ?

Ich hab folgendes Problem:

Ich habe eine Karte der BRD, die in areas eingeteilt ist. Wenn ich jetzt z.B. über Bayern fahre soll er einen Tooltip anzeigen, in den Das Land und die Anzahl der Datensätze aus einer Tabelle für das Land drin stehen.

Code:
<script>
<!--
wmtt = null;

document.onmousemove = updateWMTT;

function updateWMTT(e) 
{
	x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
	y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
	if (wmtt != null) 
	{
		wmtt.style.left = (x + 20) + "px";
		wmtt.style.top 	= (y + 20) + "px";
	}
}

function showWMTT(id) 
{
	wmtt = document.getElementById(id);
	wmtt.style.display = "block"
}

function hideWMTT() 
{
	wmtt.style.display = "none";
}
//-->
</script>

<div class="tooltip" id="1">
<?
		$land = // Hier das Land;
		$datensaetze = // HIER Anzahl Datensätze;
		echo '<table><tr><td>
			  <table align="center" cellpadding="0" cellspacing="0" width="100%" bgcolor="#00CCFF"><tr><td>'.$land.'</td></tr></table>
		  	  <table><tr><td>Es sind '.$datensaetze.' Datensätze vorhanden</td></tr></table>
			  </td></tr></table>'; 
?>
</div>

Ich müsste es nur irgendwie schaffen an den div tag den Namen des Landes (bzw. Links) weitergeben zu können. Dann könnt ich mit php auf die Datenbank zugreifen und mir die nötigen Infos hohlen. Weiss jemand von euch wie das lösbar währe ?

Oder hat jemand vielleicht sogar ne andere Lösung parat ?

mfg lomo
 
...warum so kompliziert, benutz ein array zum Speichern der Informationen, wenn die Daten nicht so groß sind.

Grüße
Andreas
 
Das Problem ist halt, das PHP serverseitig ist, das heißt du rufst die Seite auf, sie wird vom Parser verarbeitet und das ergebnis zum Browser geschickt. Somit kannst ohne neu zu landen nichts mehr machen aus deinem JavaScript raus, da das erst auf dem Client ausgeführt wird, also wenn der Parser schon alles gemacht hat.
 
Ohne jetzt deine Datenbankstruktur zu kennen:
PHP:
<?
$sql = "SELECT land.id, land.name, count(daten.id) AS datensaetze
           FROM land, daten 
           WHERE land.id=daten.land_id 
           GROUP BY land.id";
$result = mysql_query($sql, $conn);
while($row = mysql_fetch_array($result)){
           echo '<div class="tooltip" id="'.$row['id'].'">\n';
           echo '<table><tr><td>
			  <table align="center" cellpadding="0" cellspacing="0" width="100%" bgcolor="#00CCFF"><tr><td>'.$row['name'].'</td></tr></table>
		  	  <table><tr><td>Es sind '.$row['datensaetze'].' Datensätze vorhanden</td></tr></table>
			  </td></tr></table>\n</div>\n'; 
}
?>
Dann hast du für jedes Land ein <div> mit eigener eigenen ID, diese kannst du dann der Funktion showWMTT() übergeben, mußt halt nur aufpassen, dass du keine dieser IDs einem anderen Element zuweist.
 
Zurück