Gerald: Datenbankinhalt in Array lesen und Javascriptfunktion übergeben

Hallo ich hab folgendes Problem. ich hab ein Formuar für ein Programm, wo daten in eine Datenbank eingetragen werden. Jeder Datensatz erhält eine Inventarnummer. Nun soll ich nach der Eingabe der Inventarnummer im Formular prüfen, ob diese Nummer bereits vorhanden ist. Ich hab nur keine wirkliche Idee wie ich das machen kann. Irgendwie alle Invnummern in einen Array laden - Wie mache ich das am besten und dann diesen Array einer Javascriptfunktion übergeben, wo auf vorhandensein geprüft wird.
Kann mir bitte einer Weiterhelfen.
Mit Beispielcode wäre nicht schlecht da  ich ein Anfänger bin

gerald

  1. Hallo!

    Hallo ich hab folgendes Problem. ich hab ein Formuar für ein Programm, wo daten in eine Datenbank eingetragen werden. Jeder Datensatz erhält eine Inventarnummer. Nun soll ich nach der Eingabe der Inventarnummer im Formular prüfen, ob diese Nummer bereits vorhanden ist.

    Möglichkeit 1:
    Du überträgst das Formular mit der Inventarnummer und überprüfst serverseitig ob es diese Nummer gibt.

    Möglichkeit 2:
    Du überträgst mit dem Formular alle Inventarnummern in ein JS Array. Das wird aber irgenwann die JS Grenzen sprengen.

    Möglichkeit 3:
    Du setzt direkt bei der Eingabe im Formular einen XMLHttpRequest an ein Serverskript ab, schickst ihm als Parameter die Inventarnummer mit und bekommst als Antwort zurück, ob diese existiert oder nicht.
    Das Stichwort ist hier AJAX.

    Möglichkeit 1 geht unabhängig vom verwendetem Browser. 2 und 3 setzen Javascript voraus.

    mfg
      frafu

    1. Wie übergebe ich denn der javascriptfunktion den array?
      Hab mit PHP jetzt quasi den array erstellt:

      $aIds = array();

      $sSql = "SELECT invnr FROM pc";
       $rResult = mysql_query($sSql) or die($sSql.'<br>'.mysql_error());
       while ($aRow = mysql_fetch_assoc($rResult)) {
       $aIds[] = $aRow['invnr'];
       }
       $sIds = implode(',', $aIds);

      echo $sIds;

      wie kann ich nun den array an javascript übergebn

      1. Moin!

        wie kann ich nun den array an javascript übergebn

        Schritt 1: Vergiß PHP, und programmiere in Javascript einen Code, der dir ein festes Array mit Inventarnummern erstellt. Programmiere außerdem alles andere, was Javascript tun muß, um die in ein Formularfeld eingegebene Inventarnummer gegen das Array zu prüfen.

        Schritt 2: Schreibe PHP-Code, der in der Lage ist, einen Javascript-Programmtext zu schreiben, der dem entspricht, den du unter Schritt 1 als fixes Array mit Inventarnummern erstellt hast. Bedenke, dass eventuell unerwartete Sonderzeichen in den Inventarnummern auftauchen könnten, die deinen Javascript-Programmtext stören könnten (Stichwort: Escaping. Was ist, wenn die Inventarnummer ein String ist, in Javascript mit ' eingefaßt wird, aber selbst ein '-Zeichen enthält?).

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
        1. Vielen Dank
          jetzt bin ich komplett überfordert. hast du viellecith nen beispielcode, der mir veranschaulicht, was du meinst?

          1. Hallo!

            Vielen Dank
            jetzt bin ich komplett überfordert. hast du viellecith nen beispielcode, der mir veranschaulicht, was du meinst?

            Du musst den Javascript Code mit PHP erzeugen. Überleg dir, welchen Javascript Code du brauchst. zb:

            var aInventarNummern=new Array("IvNr1", "IvNr2", "IvNr3");

            Diese Zeile musst du mit PHP erzeugen und darauf achten, dass auch valider JS Code rauskommt.

            mfg
              frafu

            1. Var aInventarNummern=new Array("IvNr1", "IvNr2", "IvNr3");

              Aber wie bekomme ich die Werte aus der DB in den Array?

              1. hi,

                Var aInventarNummern=new Array("IvNr1", "IvNr2", "IvNr3");

                Aber wie bekomme ich die Werte aus der DB in den Array?

                Du wirst doch wohl wissen, wie du in PHP generell Werte aus der DB ausgibst ...?

                Nun, obiger Javascript-Code ist auch eine reine Textausgabe - also überlege dir, welchen PHP-Code du brauchst, um diese zu Erzeugen.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
              2. Hallo!

                Var aInventarNummern=new Array("IvNr1", "IvNr2", "IvNr3");

                Aber wie bekomme ich die Werte aus der DB in den Array?

                In dem du in einer Schleife die Werte aus der DB ausliest (hast du ja schon) und den String zusammensetzt.

                Um wieviele Inventarnummern handelt es sich? Bei ein paar Tausend wird der Browser in die Knie gehen.

                mfg
                  frafu

                1. Momentan sind in der DB zu testzwecken 5-10 nummern aber wenn das programm steht und regelmäßig gepflegt wird werden das schon ein paar Hundert sein.

                  1. hi,

                    Momentan sind in der DB zu testzwecken 5-10 nummern aber wenn das programm steht und regelmäßig gepflegt wird werden das schon ein paar Hundert sein.

                    Dann dürfte eine Umsetzung mit AJAX die bessere Wahl sein.

                    gruß,
                    wahsaga

                    --
                    /voodoo.css:
                    #GeorgeWBush { position:absolute; bottom:-6ft; }