ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
1023
1023
EMPFEHLEN
-
08.03.11 15:16 #1
- Registriert seit
- Mar 2011
- Beiträge
- 3
Hallo zusammen,
ich steh derzeit vor einem Problem und hoffe ihr könnt mir helfen. Die Suche sowie Google habe ich schon benutzt aber leider bisher noch nicht wirklich was passendes oder für mich verständliches gefunden.
Ich habe auf einer Website für ein Schulprojekt 3 DropDown Menues, die ihre Inhalte aus der Datenbank per MySQL abfrage beziehen. Diese Funktionieren soweit einwandfrei.
Nun soll das ganze so ablaufen, dass sich der Inhalt des 2 und 3 DropDown Menues sich erst läd, wenn man das jeweils vorherige selected hat.
Also:
Man wählt im Ersten Menue ein Land, darauf hin sollen im zweiten Menue die Bundersländer erscheinen, wenn man nun im zweiten Menue ein Bundesland auswählt, sollen im dritten Menue die Städte erscheinen.
Hier mal mein bisheriger Code:
Leider hören hier dann meine Kentnisse auf.. so das ich an der Stelle nun selber nicht mehr weiter komme, wie und womit ich das ganze umsetzen kann.PHP-Code:<select style="width:200px" name="land">
<?php
include("config.php");
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql = "SELECT name FROM land";
$result = mysql_query($sql) OR die(mysql_error());
echo "<option>" . "Land wählen..." . "</option>";
while($row = mysql_fetch_assoc($result)) {
echo "<option>" . $row['name'] . "</option>";
}
?>
</select>
<select style="width:200px" name="Bundesland">
<?php
include("config.php");
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql = "SELECT name FROM bundesland";
$result = mysql_query($sql) OR die(mysql_error());
echo "<option>" . "Bundesland wählen..." . "</option>";
while($row = mysql_fetch_assoc($result)) {
echo "<option>" . $row['name'] . "</option>";
}
?>
</select>
<select style="width:200px" name="region">
<?php
include("config.php");
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql = "SELECT name FROM region";
$result = mysql_query($sql) OR die(mysql_error());
echo "<option>" . "Region wählen..." . "</option>";
while($row = mysql_fetch_assoc($result)) {
echo "<option>" . $row['name'] . "</option>";
}
?>
</select>
Ich hoffe mir kann da jemand weiter helfen bzw. mir ein hilfreiches Tutorial anbieten.
Danke schonmal im vorraus
-
08.03.11 16:19 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Mit PHP alleine kommst du hier nur bedingt zum gewünschten Ziel.
Beim Laden der Seite wird das Listenfeld "land" gefüllt.
Wählt man hier jetzt einen Eintrag aus und klickt auf dem Button zum Senden des Formulars, wird der gewählte Eintrag ja als POST- oder GET-Wert übergeben. Damit werden dann die Einträge für die Liste "Bundesland" ermittelt.
Wird dann ein Bundesland ausgewählt und die Seite erneut abgeschickt, können die Einträge für die Liste "region" ermittelt und angezeigt werden.
Im Beispiel fehlt natürlich noch die FORM selber und auch der SUBMIT Button, ansonsten sollte es so aber klappen. Nur noch die SQL-Anweisungen müssen eventuell an deine Datenbank angepasst werden.PHP-Code:<select style="width:200px" name="land">
<?php
include("config.php");
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql = "SELECT name FROM land";
$result = mysql_query($sql) OR die(mysql_error());
echo "<option>" . "Land wählen..." . "</option>";
while($row = mysql_fetch_assoc($result)) {
echo "<option>" . $row['name'] . "</option>";
}
?>
</select>
<select style="width:200px" name="Bundesland">
<?php
if (isset($_POST["land"]) {
include("config.php");
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql = "SELECT name FROM bundesland WHERE land ='" .mysql_real_escape_string($_POST["land"] ."'";
$result = mysql_query($sql) OR die(mysql_error());
echo "<option>" . "Bundesland wählen..." . "</option>";
while($row = mysql_fetch_assoc($result)) {
echo "<option>" . $row['name'] . "</option>";
}
}
?>
</select>
<select style="width:200px" name="region">
<?php
if (isset($_POST["Bundesland"])) {
include("config.php");
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql = "SELECT name FROM region WHERE bundesland ='" .mysql_real_escape_string($_POST["bundesland"] ."'"
$result = mysql_query($sql) OR die(mysql_error());
echo "<option>" . "Region wählen..." . "</option>";
while($row = mysql_fetch_assoc($result)) {
echo "<option>" . $row['name'] . "</option>";
}
}
?>
</select>
Die vielen include-Anweisungen sind nicht nötig. Es reicht wenn du es einmal zu Beginn der Seite machst. Gleiches gilt für die Verbindung zur Datenbank.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
08.03.11 16:57 #3
- Registriert seit
- Mar 2011
- Beiträge
- 3
Erstmal danke für deine Antwort.
Geht das ganze auch ohne Submit button?
In der Theorie soll es halt direkt so funktionieren, dass wenn ich im ersten eine Auswahl treffe, dass dazu führt, das im zweiten dann die Abfrage ausgeführt wird. Ohne das man noch einen Button drücken muss.
-
08.03.11 17:10 #4
Das würde dann nur mit AJAX bzw. JavaScript funktionieren.
Du schickst einen Request an das PHP-Skript und dieses liefert dir die neuen Daten.
Bevor ich hier eventuell überflüssigen Code schreibe, nutzt du irgendein Toolkit?mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
08.03.11 17:27 #5
- Registriert seit
- Mar 2011
- Beiträge
- 3
Hallo,
nein ich benutze kein Toolkit. Bisher mache ich alles ganz normal im Editor.
-
09.03.11 09:24 #6
Ich meinte Toolkit im Sinne von einer Bibliothek mit Hilfsfunktionen wie z.B. jQuery.
Das hat aber nichts mit dem Editor zu tun.
In meinen früheren Projekten habe ich folgende Funktion benutzt, um ein XMLHTTPRequest-Objekt zu bekommen:
Dann musst du eben diese Funktion aufrufen und einen Request schicken.Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
function getRequestObject() { var ro; if (window.XMLHttpRequest) { try { ro = new XMLHttpRequest(); } catch(e) { ro = null; } } else { try { ro = new ActiveXObject("Msxml2.Xmlhttp"); } catch(e) { try { ro = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { ro = null; } } } if (ro == null) { alert ('Ihr Browser unterstützt leider kein AJAX'); } return ro; }
Hier z.B. ein möglicher GET-Request:
Bei deinem Anwendungsfall würde ich beim PHP-Skript JSON-Daten zurückgeben, diese dann mit JavaScript verarbeiten und schließlich in die Selectbox einfügen.Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13
function x() { r_obj = getRequestObject(); r_obj.onreadystatechange = function() { if (r_obj.readyState==4 && r_obj.status==200) { alert(x); } } r_obj.open("GET", "script.php?x=y"); r_obj.send(null); }
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
Ähnliche Themen
-
selectbox mit daten aus db füllen (meine nicht dropdown menue)
Von largo666 im Forum PHPAntworten: 2Letzter Beitrag: 14.08.10, 13:00 -
Sony like dropdown menue.
Von iGarfield im Forum Flash PlattformAntworten: 5Letzter Beitrag: 31.05.08, 14:30 -
JavaScript DropDown Menue
Von Precog im Forum Javascript & AjaxAntworten: 0Letzter Beitrag: 24.09.07, 23:01 -
Länderauswahl in Dropdown-Menue
Von nostradamos im Forum PHPAntworten: 9Letzter Beitrag: 05.12.04, 13:19 -
dropdown menue ueber frames hinaus anzeigen
Von rubbl-die-katz im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 19.10.04, 14:03





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren