Veröffentlicht 27. Dezember 200519 j Hi, ich würde gerne das folgende Beispiel in PHP haben, da ich kein Javascript einsetzen möchte: http://www.drweb.de/javascript/dynamische_dropdown_menues.shtml Hat jemand von euch eine Idee, wie das funktionieren könnte?
27. Dezember 200519 j Wenn Du gar kein JS einsetzen willst, dann dürfte das schwierig werden. PHP wird nämlich auf dem Server ausgeführt und nicht auf dem Client. Frank
28. Dezember 200519 j Hm, das ist natürlich schlecht. Ich dachte, ich könnte das ähnlich wie in den folgenden Beispiel machen, wo es um dynamische aufklappbare Menüs geht: http://www.it-academy.cc/content/article_browse.php?ID=1190
28. Dezember 200519 j Das ist blöd. Aber wenn es nicht anders geht. Ich habe eine interessantw Lösung im Netz gefunden, die ich direkt so verwenden bzw. umsetzen könnte: (Die Alternative) http://www.ohne-aktive-inhalte.de/codebeispiele/dynamisches_formular/
29. Dezember 200519 j Hi, (Die Alternative) http://www.ohne-aktive-inhalte.de/codebeispiele/dynamisches_formular/ Mit dieser Lösung kannst du den User ganz schnell verwirren. Er wählt oben einen Wert aus, drück auf "weiter". Jetzt tauscht er den Wert oben (Mathematik, Informatik...) wieder (vergisst den "wechseln" button zu drücken), und schon passen deine Wertepaare nicht mehr zueinander. Gruß, Markus
29. Dezember 200519 j Das stimmt natürlich. Ich werde den "Wechseln" Button auf der Folgeseite weg lassen, das Dropdown entfernen und die Variable als Text ausgeben. --- Es bei dieser Lösung nur blöd, dass ich für jeden Eintrag in dem Dropdown eine eigene PHP-Datei erstellen muss. Hast du eine Idee, wie sich das vereinfachen lässt? Das Formular ist bis auf ein Dropdownfeld identisch.
29. Dezember 200519 j mach doch einfach so: form.php <?php $feld1 = array( 'Mathe', 'Englisch', 'Physik'); $feld2 = array(); $feld2['Mathe'] = array( 'Analysis', 'Geometrie'); $feld2['Englisch'] = array( 'Gramatik', 'Vokabeln'); $feld2['Physik'] = array( 'Theorie', 'Übungen'); $feld1_idx = empty($_POST['feld1']) ? '' : $_POST['feld1']; $feld2_idx = empty($_POST['feld2']) ? '' : $_POST['feld2']; ?> <form action="form.php" method="post"> <select name="feld1" onChange="this.form.submit();"> <?php foreach ( $feld1 as $val1) { echo '<option>'. $val .'</option>'; } ?> </select> <select name="feld2" onChange="this.form.submit();"> <?php $feld2 = isset( $feld2[ $feld1_idx]) ? $feld2[ $feld1_idx] : $feld2['Mathe']; foreach ( $feld2 as $val1) { echo '<option>'. $val .'</option>'; } ?> </select> </form> Dann haste alles in einer Datei. ungetestet! Gruß, Markus
30. Dezember 200519 j Danke für den Code, das sieht schon sehr gut aus. Ich habe nun noch zwei Probleme. Sorry, wenn ich solche Fragen stelle, aber ich bin noch nicht fit in PHP: - Wie bekomme ich es hin, dass die gewählten Werte im Auswahlfeld stehen bleiben? - Wie kann ich die gewählten Werte ansprechen/ausgeben/weiterverwenden? Ich habe es wie folgt angepasst: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Unbenanntes Dokument</title> </head> <body> <?php $feld1 = array( 'Altstadt', 'Bergheim', 'Boxberg', 'Emmertgrund', 'Handschuhsheim'); $feld2 = array(); $feld2['Altstadt'] = array( '12.01.2006', '13.02.2006', '12.03.2006', '12.04.2006'); $feld2['Bergheim'] = array( '11.01.2006', '11.02.2006', '11.03.2006', '11.04.2006'); $feld2['Boxberg'] = array( '10.01.2006', '10.02.2006', '10.03.2006', '10.04.2006'); $feld2['Emmertgrund'] = array( '09.01.2006', '09.02.2006', '09.03.2006', '09.04.2006'); $feld2['Handschuhsheim'] = array( '08.01.2006', '08.02.2006', '08.03.2006', '08.04.2006'); $feld1_idx = empty($_POST['feld1']) ? '' : $_POST['feld1']; $feld2_idx = empty($_POST['feld2']) ? '' : $_POST['feld2']; ?> <form action="form.php" method="post"> <select name="feld1" onChange="this.form.submit();"> <option>Stadtteil wählen</option> <?php foreach ( $feld1 as $val1) { echo '<option>'. $val1 .'</option>'; } ?> </select> <br /><br /> <select name="feld2" onChange="this.form.submit();"> <option>Termin wählen</option> <?php $feld2 = isset( $feld2[ $feld1_idx]) ? $feld2[ $feld1_idx] : $feld2['Altstadt']; foreach ( $feld2 as $val2) { echo '<option>'. $val2 .'</option>'; } ?> </select> </form> Ihre gewählten Werte: <p>Stadtteil: <?php $feld1 ?><br /> Termin: <?php $feld2 ?></p> </body> </html>[/PHP]
30. Dezember 200519 j Ihre gewählten Werte: <p>Stadtteil: <?php $_REQUEST["feld1"]; ?><br /> Termin: <?php $_REQUEST["feld2"]; ?></p>[/php] Die Werte der beiden Felder müsste ich doch mit obigem Code abfragen können, oder?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.