tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
352
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    outdoorshop24 outdoorshop24 ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Beiträge
    31
    Hallo,
    ich arbeite gerade an einem Anfrageformular für Kunden.
    Sobald der Kunde die Artikelnummer in ein Input-Feld eingegeben hat und dieses verlässt (onchange), sollen weitere Felder mit Daten wie Bezeichnung, Preis etc. gefüllt werden.
    Die Daten sind in einer SQL-Datenbank gespeichert.

    Hier mal ein Ausschnitt aus der PHP-Datei:
    Code :
    1
    2
    3
    4
    5
    6
    
    <script type="text/javascript">
    function ausfuellen(bezeichnung, preis) {
     document.all.artikel_bezeichnung.value = bezeichnung;
     document.all.artikel_preis.value = preis;
    }
    </script>

    PHP-Code:
    echo "<form name=\"anfrage\" action=\"send_anfrage.php\" method=\"post\">\n
         Artikelnummer: <input name=\"artikel_nummer\" type=\"text\" onchange=\"find_article();\"><br>
         Bezeichnung: <input name=\"artikel_bezeichnung\" type=\"text\"><br>
         Preis: <input name=\"artikel_preis\" type=\"text\">
         .
         .
         .
         <input type=\"submit\" value=\"Anfrage senden\"><br>
         <input type=\"reset\" value=\"Anfrage verwerfen\">
         </form>"

    Mein Problem:
    Wie bekomme ich jetzt die Artikeldaten aus der Datenbank in die Felder? Damit meine ich nicht die SQL-Abfrage selber, sondern die Art, wie ich das Abfrageergebnis in die Felder bekomme.

    Hoffe, mein Problem ist ausreichend beschrieben.
    Schon mal Danke im Voraus
     

  2. #2
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    In deinem Fall würde dir ein AJAX weiterhelfen.
    Geändert von tobee (31.03.07 um 22:24 Uhr)
     

  3. #3
    outdoorshop24 outdoorshop24 ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Beiträge
    31
    Zitat Zitat von tobee Beitrag anzeigen
    In deinem Fall würde dir ein AJAX weiterhelfen.
    Sorry, aber von AJAX habe ich bisher noch nicht viel gehört und überhaupt keine Ahnung, wie ich das machen soll.
    Habe in den Wiki-Bericht reingeschaut - und noch weniger verstanden.
    Gibt es da nicht noch andere Lösungen? Eigentlich müsste es doch irgendwie möglich sein, PHP-Code mit JavaScript zu kombinieren?
    Geändert von outdoorshop24 (31.03.07 um 22:41 Uhr)
     

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Zitat Zitat von outdoorshop24 Beitrag anzeigen
    Eigentlich müsste es doch irgendwie möglich sein, PHP-Code mit JavaScript zu kombinieren?
    Genau DAS ist Ajax. Denn Ajax steht für: Asynchrones JavaScript und XML. (so ungefähr)

    Und ist sozusagen ein Begriff für genau diese Kommunikation zwischen Client und Server ohne einen vollen Neu Request zu starten.

    Ohne Ajax wirst du da nicht drum rum kommen.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  5. #5
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    So wie ich dich verstanden habe willst du anhand der Artikelnummer den dazugehörigen Preis und die Beschreibung aus einer MYSQL Tabelle abfragen.
    Entweder lädst du alle Daten in ein JavaScript Array ( was aber wegen der Perfromence nicht sinnvoll wäre ) oder du lädst die Daten dynamisch nach -> AJAX
     

  6. #6
    outdoorshop24 outdoorshop24 ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Beiträge
    31
    Hallo,
    habe mich mal etwas umgesehen und bin auf den Mozilla Developer Center-Seiten auf folgenden Code gestoßen:
    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
    
    var http_request = false;
     
        function macheRequest(url) {
     
            http_request = false;
     
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/xml');
                    // zu dieser Zeile siehe weiter unten
                }
            } else if (window.ActiveXObject) { // IE
                try {
                    http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
            }
     
            if (!http_request) {
                alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
                return false;
            }
            http_request.onreadystatechange = alertInhalt;
            http_request.open('GET', url, true);
            http_request.send(null);
     
        }
     
        function alertInhalt() {
     
            if (http_request.readyState == 4) {
                if (http_request.status == 200) {
                    alert(http_request.responseText);
                } else {
                    alert('Bei dem Request ist ein Problem aufgetreten.');
                }
            }
     
        }

    Da ich jetzt immer noch nicht so recht weiter weis, hier mal meine Frage:
    Ist das ein Lösungsansatz? Und wie bekomme ich jetzt meine SQL-Anfrage als Rückgabewert?
     

  7. #7
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Du musst ein Skript aufrufen, dass als Argumente die Artikelnummer bekommt, die Datenbankabfrage macht und die Ergebnisse im gewünschten Format (ich empfehle dir JSON statt XML) ausgibt, die dann von JavaScript verarbeitet werden. Das PHP-Skript könnte dabei wie folgt aussehen:
    PHP-Code:
    <?php

        
    // Prüfung ob Argument vorhanden und gültig ist
        // isValidItemNumber() würde die Syntax des Argumentwerts prüfen
        
    if( !isset($_POST['item']) || !isValidItemNumber($_POST['item']) ) {
            
    header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request');
            exit;
        }

        
    // getItemById() würde die Daten aus der Datenbank holen
        
    $item getItemById($_POST['item']);
        
    // Prüfung ob Artikelnummer existiert
        
    if( !item ) {
            
    header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
            exit;
        }

        
    header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
        
    header('Content-Type: application/json; charset=utf-8');

        echo 
    json_encode($item);
    Die json_encode()-Funktion ist allerdings erst durch die JSON-Erweiterung oder ab PHP 5.2.0 verfügbar.
     
    Markus Wulftange

  8. #8
    outdoorshop24 outdoorshop24 ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Beiträge
    31
    Hallo nochmal,
    also ich habe jetzt ein PHP-Skript erstellt, nach der Vorlage von Gumbo, vielen Dank dafür.
    Noch funktioniert's nicht ganz so wie gewollt, aber ich habe das Problem jetzt mal
    "provisorisch" gelöst.
    Da es sich ja "nur" um 2 bis 3 Felder handelt, die automatisch ausgefüllt werden sollen,
    habe ich einfach 3 mal den http_request durchlaufen lassen und dem PHP-Skript mittels
    GET_['feldname'] mitgeteilt, welche Daten geladen werden müssen.

    Ist zwar wirklich nur ein absolutes Provisorium, aber wenigstens läufts jetzt soweit.

    Besten Dank euch allen für die guten Tipps, habt mir sehr geholfen.
     

Ähnliche Themen

  1. 2 Eingabefelder automatisch füllen
    Von Steusi im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 12.01.11, 12:24
  2. Antworten: 5
    Letzter Beitrag: 25.09.10, 12:02
  3. C++ - Eingabefelder
    Von DO1983 im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 05.11.04, 00:09
  4. Eingabefelder.....
    Von BigBruder im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 15.11.03, 08:13
  5. 3d-Eingabefelder
    Von Kimble im Forum CSS
    Antworten: 7
    Letzter Beitrag: 16.10.01, 10:47