Mit was flexible Menus programmieren?

riedochs

Lötkolbengott/-göttin
Hi Leuts,

mit was kann ich recht flexible Menus programmieren. Konkret geht es um eine Suchmaske.

Im ersten Dropdown soll die Kategorie stehen. Je nach kategorie soll im 2. Dropdown eben die Auswahl stehen oder das 2. Dropdown durch ein Textfeld ersetzt werden.

Ich befuerchte das ich da mit Java ran muss.
 
Also Java brauchst dazu noch nicht. Javascript währe wohl angebrachter. Damit kann man ja auch zur Laufzeit CSS ändern (damit auch sichtbarkeiten, Positionen, etc. von DOM-Knoten).
 
Hi, ich habe mir aus dem Internet folgendes zusammengesucht, kann mir das jemand bitte erklaeren? :huh:

<HTML>
<HEAD>
<TITLE>Navigation mit Auswahllisten – Teil 1</TITLE>
<SCRIPT LANGUAGE="JavaScript"><!--
function kategorie_anzeigen(){}
function seite_laden(){}
//--></SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.1"><!--
// *** globale Variablen
var urls = new Array(
new Array(""),
new Array("", "seite1-1.html", "seite1-2.html", "seite1-3.html"),
new Array("", "seite2-1.html", "seite2-2.html"),
new Array("", "seite3-1.html", "seite3-2.html", "seite3-3.html",
"seite3-4.html")
)
var beschriftung = new Array(
new Array("Bitte auswählen", ""),
new Array("Bitte auswählen", "Punkt 1.1", "Punkt 1.2",
"Punkt 1.3"),
new Array("Bitte auswählen", "Punkt 2.1", "Punkt 2.2"),
new Array("Bitte auswählen", "Punkt 3.1", "Punkt 3.2",
"Punkt 3.3", "Punkt 3.4")
)
// *** Ende der globalen Variablen
function kategorie_anzeigen(f){
var kategorie = f.kategorien.selectedIndex
f.unterpunkte.options.length=0
for (var i=0; i<urls[kategorie].length; i++)
f.unterpunkte.options =
new Option((beschriftung[kategorie]), "")
}
function seite_laden(f){
var kategorie = f.kategorien.selectedIndex
var unterpunkt = f.unterpunkte.selectedIndex
}
//--></SCRIPT>
</HEAD>
<BODY>
<H3>Navigation mit Auswahllisten</H3>
<FORM>
<SELECT NAME="kategorien" onChange="kategorie_anzeigen(this.form)">
<OPTION>Bitte auswählen</OPTION>
<OPTION>Titel</OPTION>
<OPTION>Typ</OPTION>
<OPTION>Genre</OPTION>
<OPTION>Medium</OPTION>
<OPTION>Jahr</OPTION>
</SELECT>
<SELECT NAME="unterpunkte" onChange="seite_laden(this.form)">
<OPTION>Bitte auswählen</OPTION>
</SELECT>
</FORM>
</BODY>
</HTML>
Ich habe noch ein Problem: Ich muesste das 2. Dropdown
var beschriftung = new Array(
new Array("Bitte auswählen", ""),
new Array("Bitte auswählen", "Punkt 1.1", "Punkt 1.2",
"Punkt 1.3"),
new Array("Bitte auswählen", "Punkt 2.1", "Punkt 2.2"),
new Array("Bitte auswählen", "Punkt 3.1", "Punkt 3.2",
"Punkt 3.3", "Punkt 3.4")
per SQL-Abfrage fuellen. Mit PHP kann ich das nur wie bekomme ich das alles zusammen? :huh:
 
NAja aus zwei Arrays mit der gleichen Struktur werden DOM-Knoten erzeugt und eingehängt. Wie genau kann ich jetzt auf den ersten Blick net sagen.


2. Mit php ist das doch kein Problem, du kannst doch das ausgeben wo du willst.



echo "new Array(\"Bitte auswählen\",";
while($variable = holt_daten_aus_sql_funktion()) {
echo "\"" . $variable['spaltentitel'] . "\"";
}
echo "\"),";

Das gibst du eben da aus wo nacher new Array("Bitte auswählen", "Punkt 1.1", "Punkt 1.2",
"Punkt 1.3"),
stehen soll.
Alternativ kannst du das abstrahieren und nochmal eine Schleife darum machen und alle auf einmal erzeugen mit einer einzigen SQL-Abfrage, ist vielleicht eleganter.
 
So, habe es heute probiert, doch irgendwie ist es seltsam:

Wenn ich die PHP-Abschnitte alleine in eine Datei (z.B. test.php) packe funktioniert alles und ich bekomme den Inhalt des Arrays angezeigt. Packe ich das ganze wie unten zu sehen in meine suche.html bekomme ich keinen Inhalt des Arrays angezeigt, der Javascript Teil bleibt davon unberuehrt. Im Moment weis ich nicht weiter.:huh:

<?php
include ("mdb_server.php");
$db = "mdb";
?>

<HTML>
<HEAD>
<TITLE>Navigation mit Auswahllisten – Teil 1</TITLE>
<SCRIPT LANGUAGE="JavaScript"><!--
function kategorie_anzeigen(){}
function seite_laden(){}
//--></SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.1"><!--
// *** globale Variablen
var urls = new Array(
new Array(""),
new Array("", "seite1-1.html", "seite1-2.html", "seite1-3.html"),
new Array("", "seite2-1.html", "seite2-2.html"),
new Array("", "seite3-1.html", "seite3-2.html", "seite3-3.html",
"seite3-4.html")
)
//--></SCRIPT>

<?php
$sql = 'SELECT TY_NAME'
. ' FROM typ'
. ' ORDER BY typ.TY_NAME ASC LIMIT 0, 30 '; ;
$res = mysql_db_query($db,$sql);

echo mysql_error();

while($zeile = mysql_fetch_array($res))
{
echo $zeile['TY_NAME'];
}
echo mysql_error();
?>

<SCRIPT LANGUAGE="JavaScript1.1"><!--
var beschriftung = new Array(
new Array("Bitte auswählen", ""),
new Array("Bitte auswählen", "Punkt 1.1", "Punkt 1.2",
"Punkt 1.3"),
new Array("Bitte auswählen", "Punkt 2.1", "Punkt 2.2"),
new Array("Bitte auswählen", "Punkt 3.1", "Punkt 3.2",
"Punkt 3.3", "Punkt 3.4")
)
// *** Ende der globalen Variablen

Den Rest der Datei spare ich mir jetzt, der ist identisch zu dem Post oben.
 
.html Dateien werden nicht interpretiert, du musst das in suche.php umbenennen.

Sorry hatte die letzten Tage viel zu tun.
 
Zurück