Landkarte-Mehrere Links mit php unterscheiden!
Georg
- programmiertechnik
0 Sven Rautenberg0 Georg
Hallo zusammen,
Ich habe folgendes Problem.
Ich möchte eine Landkarte auf eine hp platzieren.
Wenn man nun auf ein Land klickt, soll eine die dazugehörigen Städte aus einer mysql datenbank geladen werden und anschließend dargestellt werden.
Normalerweise habe ich immer Radiobuttons verwendet, sodaß eine Zuordnung relativ einfach war und mit select meine Variable definiert war..
Wie jedoch kann ich mittels php diese Problem lösen (da hier ja "href" notwendig ist).
Denn mit <map> habe ich ja kein <action>="post" zur Verfügung
Vielleicht weiß ja jemand wie es geht?
Georg
Aloha!
Wie jedoch kann ich mittels php diese Problem lösen (da hier ja "href" notwendig ist).
Denn mit <map> habe ich ja kein <action>="post" zur Verfügung
Nimm URL-Parameter.
href="landkarte.php?land=deutschland"
- Sven Rautenberg
Aloha!
Wie jedoch kann ich mittels php diese Problem lösen (da hier ja "href" notwendig ist).
Denn mit <map> habe ich ja kein <action>="post" zur Verfügung
Nimm URL-Parameter.
»»
Ok, ich habe diesnun getan, und habe nun eine meine Links inder seite Auswahl.html definiert:
zb.
href="landkarte.php?land=deutschland"
Als Ziel habe ich die Seite: landkarte.php
wo ich zuerst das Bundesland abfrage und dann in der if Schleife die jeweiligen Daten aus der Hp holen will.
Nur leider klappt das nicht ! KANN ES AN GLOBAL VARIABLES=OFF liegen??
Und wenn ja wie kann ich das Problem umgehen, ohne das ich sie auf ON schalte?
<?
include ("datenbank_verbindung.php")
if ($name=="bayern")
{
$result = mysql_query("SELECT Staedte FROM Germany Where bundesland=bayern ");
}
else {
echo "Bitte nocheinmal auswählen";
}
while($row = mysql_fetch_row($result))
{
for($i=0; $i < mysql_num_fields($result); $i++)
{
echo "<p>$row[$i]</p>\n";
}
}
?>
Bitte um Hilfe
Georg
Aloha!
Wie jedoch kann ich mittels php diese Problem lösen (da hier ja "href" notwendig ist).
Denn mit <map> habe ich ja kein <action>="post" zur Verfügung
Nimm URL-Parameter.
»»
Ok, ich habe diesnun getan, und habe nun eine meine Links inder seite Auswahl.html definiert:
zb.
href="landkarte.php?land=deutschland"
Als Ziel habe ich die Seite: landkarte.php
wo ich zuerst das Bundesland abfrage und dann in der if Schleife die jeweiligen Daten aus der Hp holen will.
Nur leider klappt das nicht ! KANN ES AN GLOBAL VARIABLES=OFF liegen??
Und wenn ja wie kann ich das Problem umgehen, ohne das ich sie auf ON schalte?
<?
include ("datenbank_verbindung.php")
if ($name=="bayern")
{
$result = mysql_query("SELECT Staedte FROM Germany Where bundesland=bayern ");
}
else {
echo "Bitte nocheinmal auswählen";
}
while($row = mysql_fetch_row($result))
{
for($i=0; $i < mysql_num_fields($result); $i++)
{
echo "<p>$row[$i]</p>\n";
}
}
?>
Bitte um Hilfe
Georg
Wenn register_globals auf off steht, dann stehen die übergebenen Daten nicht direkt im SCript zur Verfügung. Dann mußt du $HTTP_POST_VARS, $HTTP_GET_VARS und/oderr $HTTP_POST_FILES, entsprechend der Quelle, aus der die fragliche Variable kommt benutzen.
Bei den aktuellen PHP Versionen (ab V4.1.0) äquivalent dazu: $_Post, $_get, $_files....
Genauere INfos dazu findest im Manual von php.net
http://de.php.net/manual/de/language.variables.predefined.php
Hoffe damit weitergeholfen zu haben
MfG
Jürgen
Bei den aktuellen PHP Versionen (ab V4.1.0) äquivalent dazu: $_Post, $_get, $_files....
Habe es nun mit $_get[name] probiert, jedoch funktioniert es noch immer nicht. Kann es daran liegen, daß ich mit mehreren Frames arbeite????? (Auswahl.html ist der selbe Zielframe, wie landkarte.php)
Jedoch sollte diese Version normalerweise arbeiten, oder sieht jemand einen Fehler?????
Ich bekomme aber nicht einmal den default wert bei Switch(Nichts gefunden!).
Eintrag in Auswahl.html
<map name="m_deutschland_map_d1_r5">
<area shape="poly" coords="-43,7,-30,-4" href="landkarte.php?name=bayern"></map>
<?
include ("datenbank_verbindung.php")
$was = $_GET[name];
switch($was) {
case "bayern":
$result = mysql_query("SELECT Staedte FROM Deutschland");
while($row = mysql_fetch_row($result))
{
for($i=0; $i < mysql_num_fields($result); $i++)
{
echo "<p>$row[$i]</p>\n";
}
}
break;
default:
print "Nichts gefunden";
}
lg Georg
Aloha!
Ich bekomme aber nicht einmal den default wert bei Switch(Nichts gefunden!).
<?
include ("datenbank_verbindung.php")
$was = $_GET[name];
Warum diese Krücke? Einfach direkt $_GET['name'] verwenden, wo jetzt noch $was steht. Ja, die Anführungsstriche um name herum sind wichtig!
switch($was) {
case "bayern":
$result = mysql_query("SELECT Staedte FROM Deutschland");
Mir scheint, dein Datenbankdesign könnte überarbeitungswürdig sein. Ich würde hier jedenfalls eher sowas erwarten:
SELECT staedte FROM welttabelle WHERE land = 'bayern';
Also auch kein Switch, sondern der Parameter wird direkt als Suchkriterium für die Datenbank herangezogen.
while($row = mysql_fetch_row($result))
{
for($i=0; $i < mysql_num_fields($result); $i++)
{
echo "<p>$row[$i]</p>\n";
}
}
break;
default:
print "Nichts gefunden";
}
- Sven Rautenberg