2 Dropdownfelder

Moulwart

Grünschnabel
Hi,

ich bin ein kleiner Neuling im PHP, und habe eine kleine Frage.

Ich habe 2 Ddown Felder, in dem ersten sind 5 Auswahlmöglichkeiten z.B

Audi (Fabrikat_ID=1)
BMW (Fabrikat_ID=2)
Ford (Fabrikat_ID=3)
VW (Fabrikat_ID=4)
Opel (Fabrikat_ID=5)

Wenn ich jetzt Audi auswähle, sollen aus einer SQL Tabelle alle Modelle (zB. A2, A3, A4) in dem zweiten Ddownfeld angezeigt werden. Die Tabelle ist natürlich gefüllt.
Ist sowas möglich, wenn ja, kann mir einer einen Tip geben.

LG Michael
 
Mit einer SQL abfrage ganz einfach.
SQL:
SELECT *
FROM t_modelle
WHERE f_fabrikat_id = 1 --als beispiel für Audi

Voraussetzung ist natürlich das deine Tabellen auch dementsprechend normalisiert sind.

Die Daten könntest du dann per AJAX dynamisch oder per PHP und neuladen der Seite abrufen.
 
Hallo,

vielen Dank für Deine schnelle Antwort. SQL Abfragen verstehe ich soweit. Was mir nicht in den Kopf geht, wenn ich das Fabrikat auswähle, wie das dann funktioniert das im zweiten Feld die Modelle kommen :confused:
 
Entweder wird dann die Seite neu geladen, mit dem entsprechendem Inhalt, oder du greifst auf AJAX zurück, wie hubbl schon sagte.r
 
Du hast köntest in diesem fall nur 2 Methoden nehmen

1. Per Java : beim draufklicken auf das erste Dropdownfeld wird eine java funktion aufgerufen die in das zweite Dropdownfeld die anderen werde schreibt.

2. Per PHP : Man übergibt das erste Dropdownfeld per submit (POST) nochmals auf die seite und läds die daten in das zweite Dropdownfeld.
 
Du hast köntest in diesem fall nur 2 Methoden nehmen

1. Per Java : beim draufklicken auf das erste Dropdownfeld wird eine java funktion aufgerufen die in das zweite Dropdownfeld die anderen werde schreibt.

2. Per PHP : Man übergibt das erste Dropdownfeld per submit (POST) nochmals auf die seite und läds die daten in das zweite Dropdownfeld.

Du meinst doch bestimmt: 1 per JavaScript, weil Java ist nicht gleich JacaScript und um Werte in ein Dropdownfeld zu schreiben braucht man kein Java.
 
Hallöle,

also, ich habe es bis hier hin geschafft. Es wird im DropDown Menu leider kein Inhalt von der DB aufgelistet.


PHP:
echo "<form name=sel>\n";
     echo "Hersteller: <font Hersteller_ID=Hersteller><select>\n";
     echo "<option value='0'>============</option> \n" ;
     echo "</select></font>\n";
     
     echo "Model: <font Hersteller_ID=Model><select>\n";
     echo "<option value='0'>=== Kenntnisse ===</option> \n" ;
     echo "</select></font>\n";
?>

<script language=Javascript>
function Inint_AJAX() {
   try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
   try { return new XMLHttpRequest();          } catch(e) {} //Native Javascript
   alert("XMLHttpRequest not supported");
   return null;
};

function dochange(src, val) {
     var req = Inint_AJAX();
     req.onreadystatechange = function () { 
          if (req.readyState==4) {
               if (req.status==200) {
                    document.getElementById(src).innerHTML=req.responseText; //retuen value
               } 
          }
     };
     req.open("GET", "Auswahl.php?data="+src+"&val="+val); //make connection
     req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header
     req.send(null); //send value
}

window.onLoad=dochange('Hersteller', -1);         // value in first dropdown
</script>

und

PHP:
<?
     //set IE read from page only not read from cache
     header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
     header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
     header ("Cache-Control: no-cache, must-revalidate");
     header ("Pragma: no-cache");

     header("content-type: application/x-javascript; charset=tis-620");

     $data=$_GET['data'];
     $val=$_GET['val'];

  $db=mssql_connect('IP','','');
      mssql_select_db('DB',$db);

     if ($data=='Hersteller') {  // first dropdown
          echo "<select name='Hersteller' onChange=\"dochange('Model', this.value)\">\n";
          echo "<option value='0'>==== choose  ====</option>\n";
          $result=mssql_db_query("Select Hersteller_ID, Hersteller From Autohersteller order by Hersteller");
          while(list($Hersteller_ID, $name)=mssql_fetch_array($result)){
               echo "<option value=\"$Hersteller_ID\" >$name</option> \n" ;
          }
     } else if ($data=='Model') { // second dropdown
          echo "<select name='Model' >\n";
          echo "<option value='0'>====choose Model====</option>\n";
          $result=mssql_db_query("SELECT Hersteller_ID, Model FROM Automodel WHERE Hersteller_ID = '$val' ORDER BY Model");
          while(list($Hersteller_ID, $name)=mssql_fetch_array($result)){
               echo "<option value=\"$Hersteller_ID\" >$name</option> \n" ;
          }
     } 
     echo "</select>\n";  
?>


Vielleicht hat ja mal einer kurz Zeit und kann mir einen Tip geben

LG
Michael
 
Zurück