tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von sheel
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
164
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    thomas_schweiz thomas_schweiz ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    2
    Erst Mal ein Hallo in die Runde, von einem Neuen, aus der Schweiz.

    Ich hab folgendes Anliegen:

    Es geht um ein Bestellformular.
    Ich habe 3 voneinander abhängige select-felder, das zweite vom ersten und das dritte vom zweiten. Befüllt werden sie aus einer mysql-Datenbank.
    Das funktioniert soweit einwandfrei.

    Damit kann ich nun einen Artikel bestellen, mit den select-Boxen "Lieferant", "Material" und "Grösse".

    Ich möchte nun das Formular erweitern, und zwar so, dass man mehrere Artikel vom selben Lieferanten auswählen kann, und zwar in der Art, dass man den Lieferanten nur einmal wählen muss.

    Bsp:

    - Lieferant -> Material -> Gebinde
    - -> Material -> Gebinde
    - -> Material -> Gebinde
    usw.


    So sieht mein bisheriger Code aus:
    HTML-Code:
    <html>
    <head>
    <title>Bestellschein</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="javascript" type="text/javascript">
    Code javascript:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    
    function getXMLHTTP() { //fuction to return the xml http object
    var xmlhttp=false; 
    try{
    xmlhttp=new XMLHttpRequest();
    }
    catch(e) { 
    try{ 
    xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
    }
     
    catch(e){
    try{
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e1){
    xmlhttp=false;
    }
     
     
    }
    }
     
    return xmlhttp;
    } 
    function getMat(lieferantId) { 
    var strURL="findMat.php?lieferant="+lieferantId;
    var req = getXMLHTTP();
     
    if (req) {
     
    req.onreadystatechange = function() {
    if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200) { 
    document.getElementById('materialdiv').innerHTML=req.responseText; 
    } else {
    alert("There was a problem while using XMLHTTP:\n" + req.statusText);
    }
    } 
    } 
    req.open("GET", strURL, true);
    req.send(null);
    }
     
    }
    function getGeb(lieferantId,materialId) { 
    var strURL="findGeb.php?lieferant="+lieferantId+"&material="+materialId;
    var req = getXMLHTTP();
     
    if (req) {
     
    req.onreadystatechange = function() {
    if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200) { 
    document.getElementById('gebindediv').innerHTML=req.responseText; 
    } else {
    alert("There was a problem while using XMLHTTP:\n" + req.statusText);
    }
    } 
    } 
    req.open("GET", strURL, true);
    req.send(null);
    }
     
    }
    HTML-Code:
    </script>
    </head>
    
    <body align="center">
    <table align="center" border="0" cellspacing="0" cellpadding="0" style="font-family:verdana; font-size:11;>
    <form method="post" action="" name="form1">
    
    
    <tr>
    <td>
    PHP-Code:
    <?php

    include ("db.php");


    $query="SELECT id,lieferant FROM lieferant ORDER BY lieferant ASC";
    $result=mysql_query($query);

    ?>
    HTML-Code:
    <select style="width:150px" style="font-family:verdana; font-size:11; name="lieferant" onchange="getMat(this.value)">
    <option></option>
    <? while($row=mysql_fetch_array($result)) { ?>
    <option value=<?=$row['id']?>><?=$row['lieferant']?></option>
    <? } ?>
    </select></option>
    
    
    </td>
    
    
    <td><div id="materialdiv"><select style="width:250px" style="font-family:verdana; font-size:11; name="material"><>
    <option></option>
    </select></div></td>
    
    
    
    <td><div id="1"><input style="width:50px" style="font-family:verdana; font-size:11; name="1" value="Anz"></input></div></td>
    
    <td>&nbsp;x&nbsp;</td>
    
    
    <td><div id="gebindediv"><select style="width:130px" style="font-family:verdana; font-size:11; name="gebinde">
    <option></option>
    </select></div></td></td> 
    
    <td><div id="2"><input style="width:100px" style="font-family:verdana; font-size:11; name="2" value="Farbton"></input></div></td>
    
    <td><div id="3"><input style="width:100px" style="font-family:verdana; font-size:11; name="3" value="Bemerkung"></input></div></td>
    
    
    </tr>
    
    
    </form>
    </table>
    </body>
    
    </html>
    Kann mir jemand von euch weiterhelfen? Besten Dank jedenfalls schon mal zum Voraus.

    (Sorry, hab das noch nicht im Griff, mit dem sauberen Formatieren des Beitrages ;-(
    Geändert von thomas_schweiz (29.09.11 um 05:49 Uhr)
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hi

    zum Codeformatieren schau dir den Link Codetags in meiner Signatur an.
    Allerdings wäre es hilfreich, wenn du den Code nocheinmal reinkopierst,
    die Zeileneinrückungen sind nämlich schon verloren gegangen.

    Zum Thema: Ich hätte zuerst gesagt "Ajax", aber das kennst du ja schon.
    Wo ist jetzt das Problem?

    Per JS rausfinden, wenn sich die Auswahl in der ersten Box geändert hat,
    per Ajax den Wert übergeben und den Inhalt der zweiten Box bekommen und diese füllen.

    PS: Nachträglich Willkommen bei tutorials.de
    thomas_schweiz bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    thomas_schweiz thomas_schweiz ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    2
    Hi sheel

    Danke Dir für deine Hilfe.

    Nun, so wie der Code dasteht, funktioniert er an und für sich auch. Ich habe damit
    1 Linie mit 3 Abfragen.
    Aber wie baue ich weiter, damit ich in einer 2., 3., 4., ... Linie die selben Abfragen machen kann, ohne jedoch jeweils die erste Abfrage zu wiederholen?

    Versteht man was ich meine?

    Gruss
     

Ähnliche Themen

  1. select Felder
    Von joe69 im Forum Java
    Antworten: 2
    Letzter Beitrag: 26.07.11, 15:28
  2. Abhängige select
    Von newbi_1 im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 29.03.10, 15:38
  3. Select - Felder
    Von bastiglasl im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 24.01.05, 09:48
  4. Abhängige dynamische <SELECT>
    Von Felixaburg im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 15.09.04, 21:27
  5. select felder
    Von limk im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 12.12.02, 18:21