Datenerfassung mehrfach/endlos

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

  • Datenerfassung mehrfach/endlos

    Hallo,

    ich möchte eine Datenerfassung realisieren die mehrere Datensätze für ein und die selbe Datenbank erfasst. Datenbank ist mySql. Vor einigen Jahren habe ich ein ähnliches Projekt lokal mit Access realisiert, dort ist das was ich will Standard, wie ich es in php mit mysql machen soll weiss ich nicht.

    Im Prinzip geht es darum dass eine vorher unbekannte Anzahl Datensätze mit nur einem Formular erfasst werden soll und dann in die db eingetragen wird. Bei einer Access Datenbank wird in so einem Fall nur die erste Eingabezeile dargestellt und wenn der User das letzte Feld der Zeile erreicht hat und nochmals Tabulator drückt wird automatisch eine neue leere Zeile zur Eingabe dargestellt, das sieht dann so aus:



    Mein erster Gedanke zur Realisierung mit php/mysql war, ein Formular zu gestalten das zb 20 Zeilen anzeigt und am Ende einen Fertig-Button und einen Zusatz-Button. Der User erfasst nun die Daten in den 20 Zeilen. Wenn er zb nach 12 Zeilen fertig ist klickt er auf den Fertig-Button und nur die Daten in den erfassten Zeilen werden verarbeitet, wenn er mehr als 20 Zeilen braucht klickt er auf den Zusatz-Button und weitere 10 Zeilen werden dargestellt. Das würde ich problemlos hinkriegen, aber schöner wäre eine Lösung wie ich sie von Access kenne. Das soll dann in etwa so aussehen:

    Zunächst wird eine Überschriftszeile und NUR EINE Erfassungszeile dargestellt, z.b.:

    Name / Vorname / Strasse / PLZ / Ort
    WertA / WertB / WertC / WertD / WertE

    Bewegung innerhalb der Felder natürlich mit Tabulator. Wenn der User alle Felder erfasst hat und beim letzten Feld des Datensatzes erneut Tabulator drückt soll eine weitere Erfassungszeile dargestellt werden. Am unteren Ende des Formulars wird immer ein Fertig-Button dargestellt mit dem der User die Erfassung finalisieren kann. Was ich nicht will ist, dass der User die einzelne Zeile erfasst und dann einen Button klicken muss um eine weitere Zeile zu bekommen, da wäre die Variante meines ersten Gedankens benutzerfreundlicher.

    Womöglich werden einige von Euch jetzt lachen und sagen "Bitte? Das ist doch ganz einfach!". Wenn es so ist, dann mir bitte mitteilen, bisher habe ich immer nur einzelne Datensätze verarbeitet. Wenn es doch schwieriger ist, dann freue ich mich umso mehr auf Hinweise.

    Danke
    Alexander

  • #2
    Du kannst mit AJAX sowas ganz leicht realisieren. Beim Betätigen des Tabulators musst du nur prüfen, wo er sich befindet, dann entsprechend reagieren, d.h. ggf.

    - über Ajax die Daten an die DB senden und speichern
    - die alte Zeile refreshen, dass keine input-Felder mehr existieren, sondern normale Datenansicht
    - eine neue Zeile hinzufügen

    Du musst aber auch noch den Fall dex Klicken auf dem Sende-Buttons oder Enter-Taste abfangen.

    Kommentar


    • #3
      Sicherlich ist die Lösung mit Ajax eleganter, da fertige "Zeilen" direkt eingetragen werden. Eine andere (einfachere) Möglichkeit wäre jedoch ein JavaScript zu bauen. Aus deinen Input-Feldern machst du Arrays, und gibst beim Betätigen des Tabulators in der letzten Spalte ein neues "Element" aus. Beim Absenden des Formulars werden alle Felder übermittelt und können entsprechend vom Zielscript verarbeitet werden.
      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

      Kommentar


      • #4
        Ajax ist im Grunde nichts anderes als Javascript. Und eben ein bischen Serverseitige Ausgabe. Also ist auch dein Vorschlag Ajax. Nur ohne ax.

        Trotzdem: Stell dir vor, jemand pflegt fleißig mehrere Stunden Daten ein. Wir unterstellen dem fiktiven Benutzer nur wenig Erfshrung mit EDV: Er speichert die ganze Zeit über nicht ab. Er ist fertig und will absenden, der Server ist grade nicht erreichbar, die Leitung grade unterbrochen oder was weiß ich. Der benutzer klickt auf zurück und im worst case ist alles weg. Mehrere Stunden Arbeit für die Katz. Automatisiert eintragen wäre besser.
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Bei Access muss man auch erst auf "speichern" drücken. Stell dir ma vor der PC stürzt aufeinmal ab Aber Recht hast du natürlich. Ajax ist in jedem Fall eleganter.
          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

          Kommentar


          • #6
            Original geschrieben von ArSeN
            Bei Access muss man auch erst auf "speichern" drücken.
            nein, nicht unbedingt, es kommt auf dem Programmierer an, wenn er im Eingabeformular die Tabellenansicht 1:1 abbildet, dann speichert Access den Datensatz mit dem Sprung in die nächste Zeile und validiert gleichzeitig die Eingabe.

            Kommentar


            • #7
              Bei AJAX ist auch immer so eine Sache, dass es nicht in jedem Browser funktioniert und auch, dass der User vielleicht gar nicht erwartet, dass die Daten gespeichert werden!
              Nichts finde ich nerviger, als der Ansicht zu sein, dass die Daten erst gespeichert werden, wenn ich den Button drücke um nach einem Druck auf F5 raus zu finden, dass da ein Programmierer unbedingt AJAX verwenden musste und meine alten Daten durch irgendeine Spielerei ersetzt wurden... ^^,

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                kann es sein, dass du vom Thema abkommst? Die Anforderung war: "wie Access" also ist AJAX hier am bestens geeignet. Was den Rest angeht ist wieder zu allgemein. Die Art der geforderten Anwendung ist nur für eine bestimmte Zwecke und bestimmte Usergruppe gedacht. Es ist fatal auf die Allgemeinheit umzulegen. Es interessiert keinem, was du für nervig hältst, denn die Anwendung ist nicht für dich bestimmt. Ausserdem solltest du jemals solche Website findest, die dir nervig sind, dann bleibe davon fern, es sei denn du brauchst die Website, dann finde dich damit ab. Es ist genauso wie Firmenwagen. Du kannst von einem Skoda nicht die Features eines Mercedes oder Porsche verlangen. Also entweder fährst du den Skoda oder du gehst zu Fuss.

                Kommentar


                • #9
                  Danke mal für die Antworten bis jetzt.

                  Muss dazu sagen dass ich von JS herzlich wenig Ahnung habe und ehrlich gesagt auch von Ajax habe ich bisher nur gehört, d.h. ich müsste mich erst intensiv damit beschäftigen um mir das notwendige Wissen darüber anzueignen.

                  ArSeN hat vollkommen recht was die Speicherung der Access Datenbank betrifft, da geht nix verloren, bestenfalls der aktuelle Datensatz.

                  Auch sein Lösungsansatz gefällt mir ehrlich gesagt am Besten. In die Richtung habe ich auch schon gedacht wobei ich da eher an eine Cookie/Session Lösung gedacht habe nämlich insofern:

                  Die erste Eingabezeile wird angezeigt - der User füllt die Felder aus - nach Ausfüllen des letzten Feldes der Zeile werden nach erneutem Druck auf die Tabulatortaste die Daten in der Zeile in einer Variablen in der Session gespeichert und die nächste zeile wird angezeigt. Sobald er dann auf den Fertig-Button klickt wird im nachfolgenden Script alles abgearbeitet.

                  Soweit so gut, was ich nicht weiss ist, wie ich eine bestimmte Aktion ausführe wenn der Tabulator nur an einer bestimmten Postion gedrückt wird und nicht nur zur Navigation zwischen den Feldern. Vielleicht wäre es sinnvoller dazu eine der Funktionstasten zu verwenden.

                  Klingt das irgendwie logisch oder denke ich zu kompliziert?

                  Am tollsten klingt ja wirklich der erste Vorschlag von ArSeN, nur wie realisiere ich
                  gibst beim Betätigen des Tabulators in der letzten Spalte ein neues "Element" aus
                  .

                  Danke
                  Alexander

                  Kommentar


                  • #10
                    Original geschrieben von asp2php
                    kann es sein, dass du vom Thema abkommst? Die Anforderung war: "wie Access" also ist AJAX hier am bestens geeignet. Was den Rest angeht ist wieder zu allgemein. Die Art der geforderten Anwendung ist nur für eine bestimmte Zwecke und bestimmte Usergruppe gedacht. Es ist fatal auf die Allgemeinheit umzulegen. Es interessiert keinem, was du für nervig hältst, denn die Anwendung ist nicht für dich bestimmt. Ausserdem solltest du jemals solche Website findest, die dir nervig sind, dann bleibe davon fern, es sei denn du brauchst die Website, dann finde dich damit ab. Es ist genauso wie Firmenwagen. Du kannst von einem Skoda nicht die Features eines Mercedes oder Porsche verlangen. Also entweder fährst du den Skoda oder du gehst zu Fuss.
                    Entschuldigung, dass ich einen neuen Aspekt in die Diskussion gebracht habe.

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Original geschrieben von ghostgambler
                      Entschuldigung, dass ich einen neuen Aspekt in die Diskussion gebracht habe.
                      es geht nur darum, dass es immer mehr Leute gibt, die ihren Senf gerne dazu geben, ungeachtet, ob wirklich danach gefragt wurde.

                      Kommentar


                      • #12
                        Hallo nochmal!

                        Schön das du meinen Vorschlag toll findest. Allerdings, deine Idee verhält sich dann direkt entgegengesetzt zu meinem Vorschlag. Undzwar, willst du beim Anfangen eines neuen Datensatzes die eingegebenen Werte in der "Session" speichern. Damit meinst du sicherlich die Session von PHP. Da PHP aber serverseitig ist und JavaScript Clientseitig, bleibt dir zum Umsetzen dieser Idee wieder "nur" AJAX.

                        Wenn du das wirklich so haben möchtest, müsstest du dich also mal ein wenig mit AJAX beschäftigen. Was ich dir dafür empfehlen kann ist SAJAX. Ein PHP-Framework für AJAX, welches ich persönlich sehr gelungen finde.

                        Dann noch zu deiner Frage mit der Realisierung. Ich gebe dir mal ein paar JavaScript Funktionen / Referenzen die dabei helfen könnten. Vielleicht kommst du dann auf eine Idee.

                        innerhtml
                        onkeyup
                        keyCode

                        Noch'n kleiner Tipp: keyCode 9 steht für Tabulatur. Ich hoffe ich konnte dir helfen.
                        Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                        Kommentar


                        • #13
                          Original geschrieben von asp2php
                          es geht nur darum, dass es immer mehr Leute gibt, die ihren Senf gerne dazu geben, ungeachtet, ob wirklich danach gefragt wurde.
                          Was mehr oder minder Sinn und Zweck eines Forums ist - alle möglichen Leute können schreiben was sie am besten finden und der TO kann sich das beste rauspicken.

                          Wenn ich etwas für besser erachte als der aktuelle Lösungsvorschlag, dann sage ich das auch - wenn du was dagegen hast, schön, merk ich mir, ignoriere solche Postings von mir demnächst dann bitte einfach.

                          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                          Wie man Fragen richtig stellt

                          Kommentar


                          • #14
                            OffTopic:
                            Original geschrieben von ghostgambler
                            ... Wenn ich etwas für besser erachte als der aktuelle Lösungsvorschlag ...
                            Akkusativ-Objekt


                            Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                            Kommentar


                            • #15
                              OffTopic:
                              Original geschrieben von ArSeN
                              Akkusativ-Objekt

                              sry, bin isch ganze dol dum und habsch rechtschreibschwach

                              oder auch einfach nur momentan voll die Erkältung ^^,


                              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                              Wie man Fragen richtig stellt

                              Kommentar

                              Lädt...
                              X