DropDown Menue mit Options aus MySQL und Bedingungen aus den vorigen DropDown

CrisCross

Grünschnabel
Hallo zusammen,

ich steh derzeit vor einem Problem und hoffe ihr könnt mir helfen.
Ich habe auf einer Website für ein Schulprojekt 3 DropDown Menues, die ihre Inhalte aus der Datenbank per MySQL abfrage beziehen. Dabei ist die erste Auswahl für die Zweite entscheidend und die Zweite für die dritte Auswahl.

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 Region erscheinen.

Problem:
Bei der dritten Auswahl ist die Variable $kategorie3 leer und somit der Inhalt der Options falsch.
Desweiteren können Umlaute mit der POST Methode nicht übertragen werden.


Hier mal mein bisheriger Code:

index.php:

PHP:
<html>
   <head>
      <title>Test</title>
      <link rel="stylesheet" type="text/css" href="css/basic.css">
      <script type="text/javascript"><!--
         var http = null;
         var http2 = null;

         if (window.XMLHttpRequest) {
            http = new XMLHttpRequest();                            // variante mozilla u.a.
         } else if (window.ActiveXObject) {
            http = new ActiveXObject("Microsoft.XMLHTTP");     // variante microsoft
         }
         function ausgeben2() {
            if (http2.readyState == 4) {
               var Auswahl2=document.getElementById("select3");
               Auswahl2.innerHTML = http2.responseText;
            }
         }
         function ausgeben() {
            if (http.readyState == 4) {
               var Auswahl=document.getElementById("select2");
               Auswahl.innerHTML = http.responseText;
            }
         }
         function checkSelect2() {
            var s2 = document.forms['select2'].kategorie2;
            if (http2 != null) {
               http2.open("POST", "./select3.php", true);
               http2.onreadystatechange = ausgeben2;
               http2.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
               http2.send("kat2="+s2.value);
            }
         }
         function checkSelect() {
            var s1 = document.forms['select1'].kategorie;
            if (http != null) {
               http.open("POST", "./select2.php", true);
               http.onreadystatechange = ausgeben;
               http.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
               http.send("kat="+s1.value);
            }
         }
      --></script>

   </head>
   <body>
            <div id="select1">
                <?php include("select1.php"); ?>
            </div>
            <div id="select2">
                 <?php include("select2.php"); ?>
            </div>
            <div id="select3">
                  <?php include("select3.php"); ?>
            </div>
   </body>
</html>

select1.php:

PHP:
<?php
      include("config.php");
      echo "<form name='select1'>";
      echo "<select size='1' name='kategorie' onChange='checkSelect()'>";
      echo "<option value='0'>Land wählen...</option>";
$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 where id_land in (3,15,10)");

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
while ($auswahl = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<option>" . $auswahl['name'] . "</option>";
}
mysql_free_result( $db_erg );
      echo "</select>";
      echo "</form>";
?>

select2.php:

PHP:
<?php
   include("config.php");
   $kategorie=$_POST['kat'];
      echo "<form name='select2'>";
      echo "<select size='1' name='kategorie2' onChange='checkSelect2()'>";
      echo "<option value='0'>Landteil wählen...</option>";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die
("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");

$sql = ("SELECT bundesname FROM view_land_auswahl where landname like ('$kategorie')");

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
while ($auswahl = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<option>".$auswahl['bundesname']."</option>";
// echo "<option value='j'>$kategorie ... </option>";
}
mysql_free_result( $db_erg );
      echo "</select>";
      echo "</form>";
?>

select3.php:

PHP:
<?php
   include("config.php");
   $kategorie3=$_POST['kat2'];
      echo "<form name='select3'>";
      echo "<select size='1' name='kategorieX' onChange=''>";
      echo "<option value='0'>Region wählen...</option>";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die
("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");

$sql = ("SELECT region FROM view_bland_auswahl");

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
while ($auswahl = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<option>".$auswahl['region']."</option>";
//echo "<option value='j'>$kategorie3 ... </option>";
}
mysql_free_result( $db_erg );
      echo "</select>";
      echo "</form>";
?>


Ich hoffe mir kann da jemand weiter helfen bzw. mir ein hilfreiches Tutorial anbieten.
Danke schon mal im Voraus ;)
 
Zurück