Welcher Lösungsansatz ist besser ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Welcher Lösungsansatz ist besser ?

    Hallo,

    ich habe folgende Tabelle (in MySQL):

    ArtNr.: Artikelbezeichnung: Preis: .....

    in der Ausgabe

    ist ArtNr.: ein DropDownmenü

    wenn dann ein Artikel ausgewählt ist werden die Felder Artikelbezeichnung und Preis automatisch ausgefüllt.

    Die Umsetzung dazu sieht jetzt wie folgt aus,

    1. ) entweder werden alle Artikel mit Bezeichnung, Preis, etc. beim Laden der Seite in ein Array geladen und dann mit JS aufgefüllt.

    oder

    2.) Wenn ein Artikel ausgewählt wird, wird das form abgeschickt und es werden aus der DB nur die Bezeichnung und der Preis für den einen Artikel ausgewählt.

    So richtig optimal finde ich beide Variationen nicht,

    da bei 1.) bei einer hohen Anzahl Artikel, das Seiten laden ewig dauert
    und bei 2.) ständig was an den Server geschickt wird und das ausfüllen der Felder dadurch länger dauert.

    Zur Info:

    Es soll zunächst nur lokal im Netz eingesetzt werden und nicht im Inet !

    Welchen Variante findet ihr bessser ?
    Habt ihr einen besseren Vorschlag ?

    Gruß

    speeedy018

  • #2
    **move** nach Brainstorming
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      1. ) entweder werden alle Artikel mit Bezeichnung, Preis, etc. beim Laden der Seite in ein Array geladen und dann mit JS aufgefüllt.
      Sinnvoll bei wenigen Datensätzen

      2.) Wenn ein Artikel ausgewählt wird, wird das form abgeschickt und es werden aus der DB nur die Bezeichnung und der Preis für den einen Artikel ausgewählt.
      Sinnvoll bei vielen Datensätzen

      So richtig optimal finde ich beide Variationen nicht,
      Dann lad nur den entsprechenden Datensatz mittels Javascript nach.

      Kommentar


      • #4
        Weil es viele Daten sind, würde ich Nachladen per AJAX oder eben Formularabschicken (für die non-JS-User, falls es sowas im Intranet gibt) bevorzugen.

        ständig was an den Server geschickt wird und das ausfüllen der Felder dadurch länger dauert.
        Was heißt ständig? Einmal pro Auswahl einer Artikelnummer. Das sollte ein Intranetserver, auf den nur wenige zugreifen, locker wegstecken.
        Die Verzögerung bis zum Eintreffen der AJAX-Antwort sollten ebenfalls gering sein. Der Server steht wahrscheinlich im selben LAN oder ist zumindest sonstwie "kurz angebunden".

        Kommentar


        • #5
          Mir ist gerade aufgefallen (bewusst geworden) das, die Javascript- Variante die bessere ist, da ich ja für das Drop-Down Menü sowieso die komplette Artikeltabelle auslesen muss (zumindest die Artikelnummer, dann kann ich den Rest auch gleich noch mitnehmen)

          Da gibt es auch keine bessere Alternative, oder irre ich mich da.

          Zumindest einmal muss ich ja alles auslesen.

          gruß

          speeedy018

          Kommentar


          • #6
            , dann kann ich den Rest auch gleich noch mitnehmen
            und schön in den Arbeitsspeicher des Clients ballern!

            Da gibt es auch keine bessere Alternative, oder irre ich mich da.
            Am Zustand von eben, hat sich bis jetzt noch nichts geändert...

            Zumindest einmal muss ich ja alles auslesen.
            Nö.

            Oder bist du auch so einer, der zuerst den ganzen Brockhaus liest, anstatt im Register nachzusehen, wo der gesuchte Begriff steht?

            Kommentar


            • #7
              @TobiaZ

              quote:Zumindest einmal muss ich ja alles auslesen.

              Nö.

              Oder bist du auch so einer, der zuerst den ganzen Brockhaus liest, anstatt im Register nachzusehen, wo der gesuchte Begriff steht?
              Wie kann ich das umsetzen, das ich nur das Register auslese, und
              wenn es dann angeklickt wird "nachgeschlagen" wird.

              z. Zt. habe ich folgenden Code

              PHP-Code:
              $res_Artikel mysql_query("SELECT artikelnr,bezeichnung, preis FROM sn_artikel ORDER BY artikelnr");

                      echo 
              'var ArtikelNrArray = new Array (" ",';
                                
              $i 0;
                                
                                while (
              $ArtikelNr mysql_fetch_array($res_Artikel))
                                    {
                                        if (
              $i != 0)
                                        {
              $komma ',';}
                                        echo 
              $komma.'"'.str_pad($ArtikelNr['artikelnr'],6,'0',STR_PAD_LEFT).' | '.
              $ArtikelNr['bezeichnung'].'|'.
              number_format($ArtikelNr['preis'],2,',','.').'"';                          $i++;    
                                        }
                                
                                echo
              ');'
              Zeile wird wie folgt aktualisiert:


              PHP-Code:
                          if (artikeldetails.elements["bill[artikel]["+zeile+"][artikelnr]"].value != "")
                          {
                                var 
              artikel artikeldetails.elements["bill[artikel]["+zeile+"][artikelnr]"].value.split("|");                
                              
              artikeldetails.elements["bill[artikel]["+zeile+"][artikelbezeichnung]"].value artikel[1];
                              
              artikeldetails.elements["bill[artikel]["+zeile+"][epreis]"].value artikel[2];
                              
              artikeldetails.elements["bill[artikel]["+zeile+"][menge]"].value 1;
                              
              artikeldetails.elements["bill[artikel]["+zeile+"][rabatt]"].value 0;
                              
              newArtikelRow(zeile);
                          } 
              Zuletzt geändert von speeedy018; 23.06.2008, 15:32.

              Kommentar


              • #8
                Das Register ist ein einfaches SELECT artikelID FROM...
                Und das "Nachschlagen" erledigst du mittels XMLHttpRequest (AJAX)

                Kommentar

                Lädt...
                X