PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dynamisches Formular für technisches Datenblatt


Luke85
28.08.2007, 09:21:48
Hallo liebe PHP-Gemeinde!

Bin neu hier und brauche Rat von den Profis unter euch.
Erstelle momentan ein CMS. Es soll demnächst ein dynamisches Formular zum Einsatz kommen, das mit technischen Daten von HF Geräten gefüttert wird. Die Datenmenge hat es in sich, es sind momentan bis zu 10 Seiten technische Datails in einer PDF vorhanden.
Dies soll nun durch das CMS verwaltet werden.
Es sollen nur die Felder angezeigt werden, die ausgefüllt sind und auch neue Felder hinzugefügt werden, die nicht vorgegeben sind. D.h. das Formular soll, falls möglich, lernen und die Datenbank automatisch vervollständigen.

Das ist die große Herausforderung und hoffe ich kann einige Tipps für euch erhalten.


Gruß, Luke.

Indyk
28.08.2007, 09:29:15
sorry aber ich verstehe nicht ganz, wie soll die datenbank vervollständig werden wenn du nur felder anzeigst die schon ausgefüllt sind? Dann kann man doch nichts mehr vervollständigen?

Luke85
28.08.2007, 09:48:46
Nein.
Die Datenmenge und die technischen Details variieren stark.
Ich möchte eine gewisse Vorgabe machen, wie z.B. Modellname, Modellnr., ... bis zu dem Punkt wo die Details dann unterschiedlich werden und von Gerät zu Gerät anders sind.
Dann soll es die Möglichkeit geben, per Button "neues Feld", die neuen Eigenschaften in die Datenbank automatisch einzufügen und in Zukunft abrufen zu können.

z0iD
28.08.2007, 10:32:06
Hallo Luke,

was genau soll Dein System denn erlernen? Trotz mehrmaligen Lesens Deiner Beiträge ist mir schleierhaft was das Problem sein könnte.

Außerdem verstehe ich nicht, was Du mit "automatisch einfügen" meinst.

Luke85
28.08.2007, 11:04:04
LOL ok also nochmal verständlich für alle. Die umständliche Beschreibung könnte an meinen vielen Quergedanken liegen, die mir im Kopf durchgehn.

Also Ausgangssituation ist folgende: Es müssen Datenblätter dynamisch in die Datenbank eingegeben werden und anschließend veränderbar und zu löschen sein.

Dies soll ein dynamisches Formular realisieren, das in einem WCMS integriert ist. Ich benutze hierfür Joomla!

Problem: Je nach Produkt sind die momentanen Datenblätter, die als PDF vorliegen, sehr unterschiedlich. D.h.: es kann kein einheitliches Eingabeformular geben.

Meine Idee: Ein Formular mit zwei vordefinierten Felder, wie z.B. "Name: [Eingabefeld]", "Modellnummer: [Eingabefeld]". Die restlichen Felder werden dann von Hand vom Datenblattersteller benannt und ausgefüllt. Bsp.: "[neuer Feldname]: [Daten vergeben]". Das soll dann automatisch in die Datenbank hinzugefügt und gespeichert werden.

So ich hoffe ich könnte euch das ganze jetzt richtig darfstellen. In der theorie ziemich simpel. Praktisch gesehn, habe ich da noch meine Probs.

z0iD
28.08.2007, 11:22:10
Das war doch mal eine herrlich verständliche Erklärung :)

Gutgut, aber ich weiß noch nicht auf welcher Implementationsebe Du das Problem hast, daher rate ich mal ganz flux:

SQL:
Wohl nicht, sonst hättest Du wohl im zugehörigen Forum gefragt. Dennoch, auch die SQL Struktur ist nicht ganz einfach. Ich würde dafür zwei Tabellen anlegen, in einer wird die Zuordnung von Identifikationsnummer und Datenblatt hergestellt. In der anderen stehen sämtliche Datenfelder von allen Datenblättern. Jede Zeile enthält die obligatorische Identifikationsnummer und eine Zuordnung zu der Identifikationsnummer der ersten Tabelle (also: zu welchem Datend gehört dieses Datum überhaupt). Dann noch den Datennamen und den Wert.

HTML-Formular:
Hier kannst Du natülich erstmal nur die obligatorischen Felder ausliefern und dann per JS den Rest interaktiv nachladen (falls gewünscht). Wenn Du mich fragst: Scheiß Lösung.
Besser: Obligatorische Felder ausliefern und den Benutzer mit zwei Knöpfen wählen lassen ob er die Eingabesequenz abschließen möchte (also alle zum Datensatz gehörenden Daten eingegeben hat) oder ob es noch weitere Daten gibt die einzugeben sind. Wenn er auf den zweiten Knopf klickt, dann lieferst Du einfach ein Formular mit zwei Eingabefeldern aus (so wie Du es bereits skizziert hast). Wenn er hingegen auf den ersten Knopf klickt, dann nimmst Du alle Daten (die Du natürlich immer brav über versteckte Felder mitübergeben hast) und steckst sie in Deine SQL Bank.

Ich hoffe das trifft Dein Problem und ist auch halbwegs verständlich.

Luke85
28.08.2007, 11:47:49
Ja das klingt schon mal nicht schlecht.
Wird das Ganze aber nicht kompliziert, wenn ich mal die Datenmenge wieder aufrufen will aus der Datenbank um Daten zu ändern oder sogar zu löschen?
Also es müssten dann zwei weitere Buttons "ändern" und "löschen" geben.

z0iD
28.08.2007, 12:17:00
Naja wenn Du den Datensatz erstmal eingefügt hast, ist der Rest ja geschenkt. Wenn der Benutzer etwas ändern will, musst Du doch nur den gesamten Datensatz aus der DB pulen und ihn ausliefern (jedoch in <input> Eingabefeldern). Wenn der Benutzer auf "ändern" klickt speicherst Du einfach alle Datenelemente in Deine Datenbank zurück.

Hinzufügen und Löschen von Datenelementen läuft ähnlich wie Erstellen und Ändern. Zum Löschen von Elementen kannst Du bei der Darstellung der Elemente jeweils Kontrollkästchen (<input type="checkbox" ...>) für jedes Element hinzufügen sodass der Benutzer Dir mitteilen kann welche Elemente er entfernen will.
Das Hinzufügen von Elementen läuft genauso wie beim initialen Erstellen des Datensatzes.

Und vollständiges Entfernen des Datensatzes ist ja wohl geschenkt.