Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: 2 select abfragen aus db von einander abhängig php/js

  1. #1
    HTML Newbie
    Registriert seit
    05.05.2009
    Beiträge
    2
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard 2 select abfragen aus db von einander abhängig php/js

    Hi Leute,

    Hier ist ein Problem zumindest für mich, das aus JS und PHP besteht.

    Ich bräuchte eure hilfe bei der realisierung 2er voneinander abhängigen select boxen, welche beide aus einer db ausgelesen werden.

    Als beschreibung:

    Ich habe das erste selectfeld wo Hersteller von Fahrzeugen Drinnen sind. DIes wird aus der db ausgelesen:

    PHP-Code:
    <select name="her" class="textfeld">
        <?php
         $sqlbefehl 
    ="
            Select
             Hersteller
            From
             hersteller
            "
    ;
         
    $erg_cats mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
         while(
    $cat mysql_fetch_assoc($erg_cats)){
          
          echo 
    '<option value="'.$cat['Hersteller'].'">'.$cat['Hersteller'].'</option>';
          
         }
        
    ?>
       </select>
    Das Funktioniert auch.

    Nun möchte ich, dass ich in einem 2ten Selectfeld alle Modelle Des ersten Selectfeldes aufgeführt werden.

    ZB

    selsect feld 1 = Audi A1 A3 A6 <--- soll dann natürlich im 2ten Selectfeld aufgeführt werden.

    Beide werden aus der selben Tabelle ausgelesen, demnach muss ich das mit where ... steuern das erste wird mit Distinkt abgefragt um doppelte einträge zu vermeiden. Das stellt auch weniger das problem dar, als das JS script richtig einzubauen.

    Evt kann euch das folgende script helfen was mir jmd gegeben hat, welches meiner Ansicht nach nicht umzubauen ist.

    HTML-Code:
        <script type="text/javascript">
            var mygroup = new Array();
            
            // reset
            mygroup[0] = new Array();
            mygroup[0][0] = new Option("Bitte wählen Sie zunächst eine Sprache.", 0);
            
            // deutsch
            mygroup[1] = new Array();
            mygroup[1][0] = new Option("eins", 2);
            mygroup[1][1] = new Option("zwei", 4);
            mygroup[1][2] = new Option("drei", 8);
            
            // englisch
            mygroup[2] = new Array();
            mygroup[2][0] = new Option("one",   1);
            mygroup[2][1] = new Option("two",   3);
            mygroup[2][2] = new Option("three", 9);
            
            // spanisch kann ich nicht
            
            // französisch (eigentlich auch nicht)
            mygroup[40] = new Array();
            mygroup[40][0] = new Option("un",    5);
            mygroup[40][1] = new Option("deux",  50);
            mygroup[40][2] = new Option("trois", 500);
            
            // mygroup[ZB_PRIMARY_KEY_SELECT][FORTLAUFENDE_ZAHLEN_AB_0] = new Option(OPTION_TEXT, ZB_PRIMARY_KEY_SUBSELECT)
            
            // alle <option>s des sub-<select> entfernen
            function ResetSubSelect(form, subSelect)
            {
                var e = form.elements[subSelect];
                for (var i = 0; i < e.options.length; ++i) {
                    e.options[i] = null;
                }
            }
            
            // übergebenes Element (sub-<select>) deaktivieren
            function DisableSubSelect(elem)
            {
                elem.disabled = 1;
            }
            
            // übergebenes Element (sub-<select>) aktivieren
            function EnableSubSelect(elem)
            {
                elem.disabled = 0;
            }
            
            // tritt bei onchange in Kraft, bzw. bei der Initiierung
            function ShowSubSelect(elem, subSelect)
            {
                // alle <option>s des sub-<select> entfernen (reset)
                ResetSubSelect(elem.form, subSelect);
                
                // welcher value wurde ausgewählt
                var i = elem.options[elem.selectedIndex].value;
                // sub-<select>
                var s = elem.form.elements[subSelect];
                
                // dem <sub>-select die <option>s aus mygroup zuordnen
                for (var k = 0; k < mygroup[i].length; k++) {
                    s.options[k] = mygroup[i][k];
                }
                
                // war die ausgewählte value 0? dann sub-<select> deaktivieren
                if (i == 0) {
                    DisableSubSelect(s);
                } else {
                    EnableSubSelect(s);
                }
            }
            
            function InitSubSelect()
            {
                // leeres sub-<select> mit mygroup[0] füllen
                ShowSubSelect(document.forms["myform"].elements["myselect"], "mysubselect");
            }
        </script>
    
    
    
    <form action="" method="get" name="myform">
        <select name="myselect" onchange="ShowSubSelect(this,'mysubselect')">
            <option value="0">Bitte wählen Sie eine Sprache.</option>
            <option value="1">deutsch</option>
            <option value="2">englisch</option>
            <option disabled="disabled" value="3">spanisch</option>
            <option value="40">französisch</option>
        </select>
        
        <select name="mysubselect" disabled="disabled">
        </select>
        
        <input type="submit" />
    </form>
    Wie gesagt, ich komme da ohne Eure hilfe nicht weiter, da ich JS unerfahren bin und hoffe, das mir jemand von Euch dabei helfen kann/möchte.

    Ganz liebe grüße Vincita
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von Vincita (05.05.2009 um 16:33 Uhr) Grund: Unpassende Thread überschrift

  2. #2
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: 1000 Mal erklärt und nie kapiert ;)

    eigentlich mache ich das ungern beim ersten posting, aber bitte editiere deine überschrift auf etwas, wo man das problem erahnen kann..
    denn hier haben wir auch schon 1000 mal gesagt benutzt bitte aussagekräftige titel und dennoch gibt es user die es weder kapieren, noch kapieren wollen, geschweige denn die foren-regeln lesen...
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  3. #3
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: 2 select abfragen aus db von einander abhängig php/js

    Exportier mal die SQL Tabelle\n und poste Sie hier, damit man dir mal ordentlich helfen kann...

    Also theoretisch kannst du alles per PHP vorladen und dann mit Javascript auswerten, oder du lädst nur die Hersteller und lädst via Ajax nach. (erste Variante währe wohl einfacher und warscheinlich auch performanter, wenn du nicht tausende von Autoklassen hast)

    kurz zu deinem PHP Kram da:
    - deine Variablennamen sind wohl als Rätsel zu verstehen?
    - Ich würde die SQL Tabellennamen und Tabellenfelder alle klein schreiben, dann hat man nicht soviel Probleme durch Groß- und Kleinschreibung.
    Geändert von crAzywuLf (05.05.2009 um 18:13 Uhr)
    Gruß crAzywuLf

  4. #4
    HTML Newbie
    Themenstarter

    Registriert seit
    05.05.2009
    Beiträge
    2
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: 2 select abfragen aus db von einander abhängig php/js

    Code:
    -- phpMyAdmin SQL Dump
    -- version 3.1.3.1
    -- http://www.phpmyadmin.net
    --
    -- Host: localhost
    -- Erstellungszeit: 05. Mai 2009 um 17:14
    -- Server Version: 5.1.33
    -- PHP-Version: 5.2.9
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    
    --
    -- Datenbank: `hunfeld`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Tabellenstruktur für Tabelle `her_mod`
    --
    
    CREATE TABLE IF NOT EXISTS `her_mod` (
      `ID` int(20) unsigned NOT NULL AUTO_INCREMENT,
      `Hersteller` varchar(20) NOT NULL,
      `Modell` varchar(20) NOT NULL,
      PRIMARY KEY (`ID`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    
    --
    -- Daten für Tabelle `her_mod`
    --
    
    INSERT INTO `her_mod` (`ID`, `Hersteller`, `Modell`) VALUES
    (1, 'Audi', 'A6'),
    (2, 'Audi', 'A3');
    Es geht ja nur darum, das wenn ich nun in dem ersten select feld Audi Auswähle, er in dem 2ten Alle audi varianten anzeigt und nicht die von opel.
    Da an anderer stelle weitere Hersteller eingetragen werden können ist es so unerlässlich diese ebenfalls aus der DB zu entnehmen.

  5. #5
    Meister(in)
    Registriert seit
    27.03.2009
    Ort
    Berlin
    Beiträge
    278
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: 2 select abfragen aus db von einander abhängig php/js

    Eine einfache Lösung würde ohne JS gehen.

    Du schickst einfach das select mit der Herstellermarke mit submit an dein script. Die somit übergebene Variable, $_POST oder $_GET, kommt dann in deine neue SQL-Abfrage und füllt das nächste select, genau so wie du es vorher schon gemacht hast.
    Und so kann es immer weiter und weiter gehen.

    Das kann natürlich sehr umständlich werden wenn du viele sachen zum auswählen hast. Aber es geht ohne JS, was ich persönlich toll finde.
    Ansonsten musst du das ganze halt einfach per JS umsetzen, da kann ich dir aber leider nicht weiterhelfen. Habe da leider keine Anhnung von.

  6. #6
    Forum Guru Avatar von driver
    Registriert seit
    10.04.2006
    Alter
    34
    Beiträge
    20.729
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: 2 select abfragen aus db von einander abhängig php/js

    des problem hatte ich auchmal. habs dann so gelöst

    javascript:
    HTML-Code:
    <script type="text/javascript">
                function haupt_a(wert){
                    document.getElementById('id_ah').value = wert;
                    document.getElementById('id_au').value = "";
                }
                function unter_a(wert){
                    document.getElementById('id_au').value = wert;
                }
            </script>
    php auswahlmenü
    PHP-Code:
    <?php
    echo "<select name=\"artikel\" size=\"1\" style=\"width:220px;\">";

    echo 
    "<option selected=\"selected\">Artikelgruppe wählen</option>";
    $sql "select id, bez from artikel_haupt order by bez";
    $result mysql_query($sql);

    while(
    $liste mysql_fetch_array($result))
    {
        if(
    $id_haupt==$liste['id'])
        {
            echo 
    "<option selected=\"selected\" onclick=\"haupt_a(".$liste['id'].");this.form.submit();\">".$liste['bez']."</option>";
        }
        else
        {
            echo 
    "<option onclick=\"haupt_a(".$liste['id'].");this.form.submit();\">".$liste['bez']."</option>";
        }
    }
    echo 
    "</select>";

    if(
    $id_haupt!=0)
    {
        echo 
    "<select name=\"artikel2\" size=\"1\" style=\"width:200px;\">";
        echo 
    "<option selected=\"selected\">Marke w&auml;hlen</option>";

        
    $sql "select id, bez from artikel_unter where id_haupt=".$id_haupt." and menue=1 order by bez";
        
    $result mysql_query($sql);
        
        while(
    $liste mysql_fetch_array($result))
        {
            if (
    $id_unter == $liste['id'])
            {
                echo 
    "<option selected=\"selected\" onclick=\"unter_a(".$liste['id'].");this.form.submit();\">".$liste['bez']."</option>";
            }
            else
            {
                echo 
    "<option onclick=\"unter_a(".$liste['id'].");this.form.submit();\">".$liste['bez']."</option>";
            }
        }
        echo 
    "</select>";
    }
    else
    {
        echo 
    "<input type=\"text\" value=\"Marke w&auml;hlen\" size=\"24\" readonly=\"readonly\" />";
    }
    ?>
    ganz oben musst dann die werte, die übergeben werden wieder abfangen
    PHP-Code:
    $id_haupt $_POST['id_ah']; 
    und zum schluss die "zwischenspeicherung"
    PHP-Code:
    echo "<input type=\"hidden\" value=\"".$id_haupt."\" name=\"id_ah\" id=\"id_ah\" />"
    das ganze in worten...
    du klickst in der auswahlliste einen punkt an (wird mit db gefüllt),
    des klick löst erst eine js-aktion oben aus welche die id des wertes
    übergibt und in die input-box unten reinschreibt. anschließend kommt
    gleich ein submit der praktisch die gleiche seite wieder aufruft, und
    dabei den entsprechenden wert übergibt.

    btw. die zwischenspeicherung könnte evtl wegfallen (damit also
    die inputbox und des javascript), wenn du die id direkt übergibst.
    ich musste des aber so lösen, da ich 5 selectboxen habe...

    edit:
    das ganze muss natürlich in ein formular
    HTML-Code:
    <form name="artikel" action="index.php?page=artikel" method="post"></form>
    >> die icq-schreiberlinge bitte dies hier beachten



    1679 entdeckte Gottfried Wilhelm Leibniz das Binärsystem, bei einem Gespräch mit seiner Mutter: "Ja..., Nein..., Nein..., Nein..., Ja..., Ja..., Nein..."

  7. #7
    Meister(in)
    Registriert seit
    27.03.2009
    Ort
    Berlin
    Beiträge
    278
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: 2 select abfragen aus db von einander abhängig php/js

    Selbst bei 5 selectboxen kann das wegfallen.
    Über eine ausreichende beschriftung und eine php-ausleseung kann man das schon machen.

  8. #8
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: 2 select abfragen aus db von einander abhängig php/js

    Zitat Zitat von thilda Beitrag anzeigen
    Selbst bei 5 selectboxen kann das wegfallen.
    Über eine ausreichende beschriftung und eine php-ausleseung kann man das schon machen.
    Man sollte mittels php eine noscript-Weiche stellen. Trotzdem ist es sehr gut das generell über JavaScript (noch besser Ajax) zu realisieren, da es besonders bei hochfrequentierten komplexeren Seiten sehr performancelastig sein kann für jede Auswahl die ganze Seite neu zu laden. Bei 5 Auswahlen würde mich als User das schon ganz schön ankotzen wenn die Seite nicht extrem schnell läd.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  9. #9
    Forum Guru Avatar von driver
    Registriert seit
    10.04.2006
    Alter
    34
    Beiträge
    20.729
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: 2 select abfragen aus db von einander abhängig php/js

    also mit id und übergabewerten hatte ich es am anfang, allerdings
    is des ziemlich zum kotzen wennst irgendwann haufenweise abfragen
    hast. deshalb die post methode. läuft eigentlich ziemlich gut... also ich
    bin zufrieden damit...
    >> die icq-schreiberlinge bitte dies hier beachten



    1679 entdeckte Gottfried Wilhelm Leibniz das Binärsystem, bei einem Gespräch mit seiner Mutter: "Ja..., Nein..., Nein..., Nein..., Ja..., Ja..., Nein..."

  10. #10
    Meister(in)
    Registriert seit
    27.03.2009
    Ort
    Berlin
    Beiträge
    278
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: 2 select abfragen aus db von einander abhängig php/js

    @SinnlosS: das noscript kann man doch auch schon per html machen?!

    @driver: selectboxen kann man ja aber auch über $_POST abgreifen.

Ähnliche Themen

  1. JavaScript: select-box onchange: neue select-box
    Von Jan_K im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 20.08.2008, 16:43
  2. Bilder sind entfern von einander dargestellt
    Von Greg10 im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 08.09.2007, 00:10
  3. 2 Bilder in einander verschmelzen (weitere Frage2)
    Von Starfighter im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 10
    Letzter Beitrag: 24.01.2007, 22:20
  4. problem mit Pulldown-Menü (<select></select>)
    Von magicgerd im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 23.01.2006, 18:38
  5. zwei bilder neben einander
    Von neuer neuling im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 24.07.2005, 13:03

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •