2 abhängig Drop-Down Menüs

  • #1
A

AlexD

Bekanntes Mitglied
Themenersteller
Dabei seit
22.05.2001
Beiträge
115
Reaktionspunkte
0
Hallo zusammen,

ich hab ein kleines Anliegen und hoffe Ihr könnt mir helfen.

Und zwar hab ich mir meine CD's in mp3 umgewandelt und mir ein Archiv in PHP geschrieben. Gespeichert werden die Daten in einer MySQL-Datenbank.

Soweit funktioniert alles sehr gut.
Ich muß dazusagen, das ich trotz allem noch ein Newbie bin....

Nun möchte ich mir die Cover einscannen und den entsprechenden Titel/Album zuordnen.

Ich weiß dass die DB jetzt nicht grad optimal ist, aber das Projekt wächst und wurde nicht so in diesem Ausmaß geplant.  ;)

Also möchte ich mir eine Tabelle anlegen Interpret und eine Album anlegen.
Zum eintragen der Bilder in die DB würde ich es gerne so machen das ich im ersten Drop-Down Menü die Interpreten hab und dann abhängig davon mir im zweiten die dazugehörigen Alben angezeigt werden.
Es soll im Übrigen nur der Link zum Bild in der DB gespeichert werden nicht das Bild selbst.

also z.B. so:

Drop-Down 1               Drop-Down2
Blind Guardian    =>  Somewhere Far Beyond
                                 Tales From.....
                                 Battalion Of.....
                                 .
                                 .

oder dann z.B.
Kuschelrock   =>  Volume 1
                           Volume 2
                           Volume 3
                            .
                            .

Ich hab in meinen PHP-Büchern gesucht aber leider finde ich keinen Ansatz wie ich das realisieren kann.


beste Grüße
Alex
 
  • #2
Entweder du musst das mit JavaScript machen, oder nach jeder änderung der DropDownBox 1 das Formular abschicken, damit neue Daten für die 2. Box geholt werden.
 
  • #3
Hallo Conny,

ich würde es schon gerne so haben, das ich nur auswählen muß und dann sich das 2. Drop-Down entsprechend füllt.

Das wäre wohl die Version mit JavaScript?!

Könntest Du mir da einen Ansatz gegen wie ich das realisieren kann?

Alex
 
  • #4
Jo kann ich, aber erst wenns draußen wieder hell is ;D ;D
Dauert etwas länger so ne Spielerei ;), und dazu is schon zu spät, Sorry :)
 
  • #5
ja, das ist kein Problem!!!
Sooo eilig hab ich es dann doch nicht! ;)

Vielen Dank schonmal für die Mühe!!
 
  • #7
uuuaaaaahhhh *sichschüttelt* BLOB's (Binary Large Objects) in der Datenbank *sichnochmehrschüttelt* eine größere Vergewaltigung kann es kaum geben....

Davon aber mal abgesehen Conny. Soviel zum Thema Wenn es wieder hell ist :D ;D

Dich hat wohl der Arbeitseifer gepackt.

@AlexD Ist das Archiv nur ein Übersichtsarchiv? Kannst du das Script wenn es fertig ist hier mal posten. Würde mich dafür auch Interessieren, war bisher nur immer zu faul sowas selbst zu machen. Hatte auch immer gute Ausreden dafür bzw. andere Dinge zu tun ;D
 
  • #8
Vergiss es, ich habe folgenden Satz heute morgen wohl überlesen:

Es soll im Übrigen nur der Link zum Bild in der DB gespeichert werden nicht das Bild selbst.

Ich ging davon aus, das er das gesamte Bild in der DB speichern will.

Klassischer Fall von:
Wer lesen kann ist klar im Vorteil
 
  • #9
Gelle ;)

* Off-Topic Postings gelöscht *
 
  • #10
Hallo Conny,

vielen Dank erst mal.
leider funktioniert es bei mir noch nicht so ganz... im zweiten Drop-Down wird immer nur -kein Album- angezeigt

kann es sein das für das 2. Drop-Down der <Option>-Tag mit den Daten fehlt?! Beim ersten wirds ja mit $opt_1 gefüllt.

Zeilen 93, 94.
welche Semikolon ist denn da gemeint?
es geht eingentlich nur das $temp = ereg_replace(;$,, $temp);

PHP:
88 foreach($band as $album) {
89  // Wenn für die Band ein oder mehrere Alben existieren
90  // Image-Link und Album Name übergeben
91  $temp .= $album[0].,.$album[1].;;
92 }
93 // Abschließendes Semikolon entfernen <== ???????
94 $temp = ereg_replace(;$,, $temp);
95 // Albumdaten an ein Hidden-Feld übergeben
96 $hidden .=-><input type=hidden id=band_'.$key.' 
97 name=band_'.$key.' value='.$temp.' />';

hier mal der Link zur Test-Seite (nur mal Dein Skript):


Das->Event' onChange kann ich ja bei bedarf aus dem zweiten DropDown nehmen so das dann beide Menüs im ausgewählten Zustand sind oder? Denn diese beiden sind Bestandteil eines Eingabeformulars und hier soll dann quasi die->album_id' in eine Tabelle alls Verknüpfung zum Cover-Bild eingetragen werden.
Auf diese Weise wird das Selectieren des Album wesentlich vereinfacht als wenn alles in einem Drop-Down Menü ist.

Viellicht noch kurze Übersicht über die Datenbank:
Tabellen:
daten => bisher alle Daten von Interpret, Album bis hin zum Link des mp3 Files (Interpret und Album kann ja dann durch eine Verknüpfung der beiden neuen Tabellen ersetzt werden)
interpret (neu, wie im Beispiel)
album (neu, wie im Beispiel)
 
  • #11
Ähm, räusper, hüstel ;)
// Object finden
// MM_findObj ist eine Standardfunktion von Macromedia zum geziehlten auffinden
// von Objekten. Aus Darstellungsgründen hier entfernt.

Probiers mal wenn du dir das Teil downloaden tust ;) ;)

welche Semikolon ist denn da gemeint?
Beim zusammenbau des Arrays/Strings wird hinten als Trennzeichen immer ein Semikolon angehängt, beim letzten Album wird dieses Semikolon aber nicht mehr benötigt ;)
 
  • #12
Ähhhmm.....ja, das leben ist voller Missverständinisse...... ;)

Peinlich, peinlich..... jetzt funktioniert es.

Hätte mich aber auch gewundert wenn da ein Fehler im Skript gewsen wäre. Die Kompetenz hier auf WT sucht Ihres gleichen. :) :)

Vielen Dank für das Skript!!!
 
  • #13
Eine Frage hab ich noch.

Da die beiden ja als Teil eins Eingabeformulars fungieren brauch ich die->album_id' des gerade ausgewählten albums damit ich diese id dann in die DB eintragen kann.

Hab ich schnell noch ein wenig gespielt, aber wie kommt ich an die aktuell markierte->album_id' ran, so das wenn ich ganz unten im Formular auf Submit klicke diese id mit gesendet wird?

Name des 2 Drop-Down wäre ja->cover' also $cover zum Eintrag in die DB...

Ich weiß ich kann ganz schön lästig sein. ;)
 
  • #14
Jo, auf die Frage hab ich gewartet ;D ;D

Hab das Teil extra für die Ausgabe gebaut, wird wohl auch öfter gebraucht werden.

Aaaaaaalso, zur Eingabe brauchst du ja keine Bilder zu sehen, die willste ja erst speichern ;)

d.H.
Code:
<?php
// Album-Daten für Interpret holen
  $sql_2 = SELECT interpret_id, cover_link, album_name 
      FROM album 
      WHERE interpret_id=.$row[0]. 
      ORDER by album_name ASC;
?>
ändern in:
Code:
<?php
// Album-Daten für Interpret holen
  $sql_2 = SELECT interpret_id, album_id, album_name 
      FROM album 
      WHERE interpret_id=.$row[0]. 
      ORDER by album_name ASC;
?>

in der 2. SelectBox:
Code:
onChange=get_image(this,->cover')

entfernen, und dann sollte es gehen ;)
 
  • #15
Werd ich bei nächster gelegenheit ausprobieren!!

Vielen Dank nochmal!! :) :)
 
  • #16
Ok die Änderung der DB-Abfrage ist sehr logisch.

Ich hab nun die Menüs in mein Formular eingebaut.
Das 2. Drop-Down Menü heißt ja dat2 also trage ich den Wert so in die DB ein
.., album_id VAlUES->$dat2', ......

Die Menüs liegen innerhalb des Form-Tags vom Formular, sonst wirds ja nicht berücksichtigt.

aber ich bekomm keinen Wert für die album_id.
 
  • #17
Schick mir mal die Datei, is einfacher ;)

bzw. wenn REGISTER_GLOBALS auf OFF gestellt ist, sollte es eh ... $_REQUEST['dat2'] ... heißen ;) ;)
 
Thema:

2 abhängig Drop-Down Menüs

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben