PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Entwicklung und Softwaredesign (http://www.selfphp.de/forum/forumdisplay.php?f=14)
-   -   Dropdown formular (http://www.selfphp.de/forum/showthread.php?t=6903)

rolan 11.02.2004 22:54:28

Dropdown formular
 
Hallo,

sicher wurde sowas schon öfter gepostet, aber ich finde einfach nichts, was ich verstehe.

Ich habe ein Formular mit mehreren Felder, u.a. zwei Dropdownfeldern. Ich möchte diese beiden Dropdowns aus der Datenbank füllen. (benutze PHP + MySql). Allerdings sollen sich die Datensätze aus dem zweiten Dropdown auf das erste beziehen, also ich wähle z.B. im ersten das Haus aus und erhalte im zweiten Dropdown nur die FeWo's, die dieses Haus enthält.
Bsp: http://www.vip-urlaub.com/php/preis
(benutze dabei mehrere Seiten!)

Allerdings möchte ich nicht für das zweite Dropdown das komplette Formular neu laden müssen, sondern über ein onChange o.ä. dies realisieren.

Geht das und wenn ja, wie gehe ich das am besten an?

Rolan

c4 12.02.2004 09:40:26

Da ich gerade Lust hatte, habe ich es mal selber probiert. :)
Code:

<html>
    <head>
        <title>JavaScript-Test</title>
        <script type='text/javascript' language='javascript'>
        <!--
        function change_asd2(id) {
            // potentielle Eintraege festlegen
            var asd2=new Array(
                        new Array('Mercedes', 'BMW', 'Skoda'),
                        new Array('sch&ouml;ne', 'intelligente', 'meine', 'Rest'),
                        new Array('klein', 'etwas gr&ouml;&szlig;er', 'etwas kleiner als mittel', 'normales Mittel', 'leicht gr&ouml;&szlig;er', 'GIGANTISCH'),
                        new Array('Specialized')
                    );
            var i, ne;      // ne -> new entry

            // alle Eintraege loeschen
            for (i=0; i<document.getElementById('asd2').length; i++) {
                document.getElementById('asd2').options[i]=null;
            }

            // neue Eintraege hinzufuegen
            for (i=0; i<asd2[id].length; i++) {
                ne=new Option(asd2[id][i], i);
                document.getElementById('asd2').options[i]=ne;
            }
        }
        //-->
        </script>
    </head>
    <body bgcolor='white'>

    <form action='irgendwo.php' method='post'>
        <select name='asd[]' id='asd1' onchange='change_asd2(this.selectedIndex);'>
            <option value='0'>Autos</option>
            <option value='1'>Frauen</option>
            <option value='2'>H&auml;user</option>
            <option value='3'>Fahrr&auml;der</option>
        </select><br><br>
        <select name='asd[]' id='asd2'>
            <option>---</option>
        </select><br><br>
        <input type='submit'>
    </form>

    </body>
</html>

Hinweise gibt's unter http://www.selfhtml.net/javascript/objekte/options.htm

rolan 12.02.2004 16:13:28

Danke Dir 'c4'
es sieht alles wunderbar aus. jeodch wie soll ich DB Mysql ergebnisse einsetzen.

statt:
var asd2=new Array(
new Array('Mercedes', 'BMW', 'Skoda'),
new Array('schöne', 'intelligente', 'meine', 'Rest'),
new Array('klein', 'etwas größer', 'etwas kleiner als mittel', 'normales Mittel', 'leicht größer', 'GIGANTISCH'),
new Array('Specialized')
);

sollen nun erg. aus database abgrufen werden.
z.b. für Villa Orange (dazugehörige FeWo sind - aus databese - 1, 2, 3)
Ich weis das ich unter "new Array" die erg. eingeben kann, aber es die erg. sollen aus DB ausgelesen werden

PHP sieht so aus (zweite dropdown feld):
<?

$dbverbindung = @mysql_connect ("127.0.0.1",$user,$passwd) or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden");
$db_waehlen= @mysql_select_db ($dbname, $dbverbindung);


$abfrage = "select
haus_name,
fewo_nr
FROM _fewo_nr WHERE haus_name='$haus_name'";

$erg = mysql_query($abfrage,$dbverbindung);
if ($erg) {
echo "Ferienwohnung Nr.: <select size=1 class=input name=fewo_nr id='asd2'>";
echo "<option value="" checked>Bitte Wählen!!</option>";
$zeile =mysql_num_rows($erg);

for ($n=0; $n < $zeile; $n++) {
echo "<br><option value="",mysql_result($erg,$n,1),"">",mysql_result($erg,$n,1),"</option>";
}
echo "</select><br>";
}
?>

c4 12.02.2004 16:29:42

Zitat:

Original geschrieben von rolan
Danke Dir 'c4'
es sieht alles wunderbar aus. jeodch wie soll ich DB Mysql ergebnisse einsetzen.
Nennen wir 'es' einfach Carsten. ;)

Du musst das JavaScript und das Formular einfach mit PHP aufbauen lassen und dann hast du's. Du hast doch schon die Auswahlliste dynamisch gefüllt. Dasselbe machst du einfach mit den Feldern für das Array in JavaScript.
Einfach mal probieren, wirst du schon schaffen. :)

amandus99 10.04.2007 16:31:54

AW: Dropdown formular
 
Hallo,

ich habe genau das gleiche Problem, habe das Array auch gefüllt bekommen, nur für den ersten Eintrag funktioniert dies leider nicht, erst nach einem onchange, in deinem bsp kann ich ja auch noch kein auto auswählen, erst wenn ich was anderes gewählt habe und dann nochmal auf auto klicke kann ich dort die modelle wählen. gibt es dafür eine lösung?


Gruss

amandus99

c4 10.04.2007 16:37:06

AW: Dropdown formular
 
Du musst einfach die Funktion aufrufen, die die <select>-Box füllt, wenn die Seite/das Formular fertig geladen ist:
Code:

change_asd2(document.getElementById('asd1').selectedIndex);
Dann tut's auch gleich beim ersten Seitenaufruf.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:24:47 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.