Zum Inhalt springen

Dynamisches Formular

Erstellt am 5. April 2006 · 6 Antworten · letzte Antwort am 6. April 2006

Tags: Frage

Nick78 ·

ich habe ein formular in html/php angelegt, wo über drop-down menüs und texteingabefelder eingaben gemacht werden können. die inhalte der drop downs werden aus einer datenbank geladen. drücke ich am ende auf submit, wird ein neuer datensatz angelegt mit den zusammengeklickten attributwerten. soweit so gut. klappt alles super.

nun soll am ende kommt eine präsentationsseite herauskommen:

Modell: xxx

Motor: xxx
Getriebe: xxx
Lack: xxx

die person, die die eingabe gemacht hat, soll dann auch über einen previewbutton im formular das resultat bewundern können. dabei werden dann jedesmal nur die platzhalter (xxx) durch die neu angelegten attributwerte ersetzt.

jetzt hatte ich mir schön gedacht, ich importiere meine db-tabellen schön in meine db von typo3 und greife dann von typoscript aus auf die inhalte der tabelle zu, in der die zusammengeklickten werte stehen. nur diese tabellen stehen ja nicht im $TCA.
heißt das ich müsste jede tabelle einzeln in einer extension anlegen, sowie das formular erneut in typo3 bauen???
kann man nicht einfach das formular samt tabellen importieren und auf die tabelle mit den ergebniswerten von typoscript aus zugreifen??? vielleicht über eine weitere extension???
das würde mir eine menge arbeit und zeit ersparen. ich danke euch 1000fach!!!
nick

FordPrefect ·

Hi,

soweit ich das beurteilen kann nur über TCA - also eine Extension anlegen und dort die Tabellen definieren.

Gruss

Ford

Nick78 ·

danke ford,
oh man, ich habs befürchtet. aber ist es nicht vielleicht möglich das ich mein webformular und die dazugehörigen tabellen so lasse wie sie sind und dann praktisch nur die ergebnistabelle in einer extension anlege? dann lasse ich dass formular die ergebnisse einfach dort abspeichern. problem wäre allerdings, das diese tabelle dann extern "gefüllt" wird, durch die eingaben der anwender. somit gelangen die insertanweisungen sicher auch nicht in den tca und sind somit von typo3 aus nicht abrufbar was? #angry# #angry# #angry#

FordPrefect ·

Hi,

doch, so könnte es gehen. Die Daten für das Formular aus deinen Tabellen - sollten aber in der typo3-DB liegen, und deine Ergenbistabelle über den Extensionmanager anlegen. Musst dann im Seitenbaum ein Sysordner anlegen und beim insert immer unter pid die ID des Sysordners angeben, dann haste in der Listenasicht zugriff auf die eingegebenen Daten.

gruss

FOrd

Nick78 ·

hi,

ok, wenn ich das richtig verstanden habe heißt das, ich könnte die tabellen (z.b. motor, getriebe,...) so wie sie sind in die typo3 db importieren, ohne sie neu als extension anzulegen und ohne, dass sie im tca aufgenommen werden. ebenso existiert weiterhin das externe formular. dem php-dokument, das in <form name="balbla" action="php_dokument.php"> im formular angegeben ist, weise ich dann die in typo3 angelegte tabelle als zieltabelle zu. dabei muss ich dann auch die von typo3 hinzugefügten attribute (uid, pid, cruser-id,...) beim insert berücksichtigen. ich übergebe dann für diese attribute dann jeweils einen leeren string und für die pid, dann halt die id des sysordners.
das bedeutet dann, dass die in typo3 angelegte tabelle durch die extern gemachten einträge wächst und die somit neu entstehenden datensätze mit der pid über den sysordner erreichbar sind?

wie würde ich dann in typoscript darauf zugreifen? ich habe z.b. ein marker MODELL im fertigen layout und ein auswahlmenü "modell" im formular, wo man ein solches auswählen kann. das ergebnis wird über mein formularverarbeitendes php-skript in der in typo3 angelegten extension-tabelle gespeichert. dies geschieht ja alles außerhalb von typo3. d.h. in typo3 werde ich keine inhalte in der tabelle finden, da die insertanweisungen nicht im tca aufgenommen werden.
über die pid hätte ich dann aber eine verbindung zum sysordner und kann dann doch auf die "externen" inhalte zugreifen, nur wie genau?

...
10.workOnSubpart = DOKUMENT
10.marks {
MODELL = CONTENT
MODELL.table = extensiontabelle
MODELL.field = modellname
...

so gehts ja nicht, weil die im formular eingegebenen insertanweisungen ja nicht
im tca vorliegen. wie kommt hier der sysordner zum einsatz?

ey ford, soweit schonmal vielen dank für deine hilfe.

nick

FordPrefect ·
Nick78 schrieb

hi,

ok, wenn ich das richtig verstanden habe heißt das, ich könnte die tabellen (z.b. motor, getriebe,...) so wie sie sind in die typo3 db importieren, ohne sie neu als extension anzulegen und ohne, dass sie im tca aufgenommen werden. ebenso existiert weiterhin das externe formular. dem php-dokument, das in <form name="balbla" action="php_dokument.php"> im formular angegeben ist, weise ich dann die in typo3 angelegte tabelle als zieltabelle zu. dabei muss ich dann auch die von typo3 hinzugefügten attribute (uid, pid, cruser-id,...) beim insert berücksichtigen. ich übergebe dann für diese attribute dann jeweils einen leeren string und für die pid, dann halt die id des sysordners.
das bedeutet dann, dass die in typo3 angelegte tabelle durch die extern gemachten einträge wächst und die somit neu entstehenden datensätze mit der pid über den sysordner erreichbar sind?

ja, du hast das korrekt erfasst, so solltest du es machen.

Nick78 schrieb

wie würde ich dann in typoscript darauf zugreifen? ich habe z.b. ein marker MODELL im fertigen layout und ein auswahlmenü "modell" im formular, wo man ein solches auswählen kann. das ergebnis wird über mein formularverarbeitendes php-skript in der in typo3 angelegten extension-tabelle gespeichert. dies geschieht ja alles außerhalb von typo3. d.h. in typo3 werde ich keine inhalte in der tabelle finden, da die insertanweisungen nicht im tca aufgenommen werden.
über die pid hätte ich dann aber eine verbindung zum sysordner und kann dann doch auf die "externen" inhalte zugreifen, nur wie genau?

...
10.workOnSubpart = DOKUMENT
10.marks {
MODELL = CONTENT
MODELL.table = extensiontabelle
MODELL.field = modellname
...

so gehts ja nicht, weil die im formular eingegebenen insertanweisungen ja nicht
im tca vorliegen. wie kommt hier der sysordner zum einsatz?

Warum unbedingt mit Typoscript, warum nicht eine Extension basteln die dir das ausgibt?

ey ford, soweit schonmal vielen dank für deine hilfe.

nick

Keine Ursache!

Gruss

Ford

Nick78 ·

ich habe nun den sysordner angelegt und erhalte auf jeden db-eintrag zugriff. soweit alles super. wie setze ich jetzt aber mit einer extension an?
wie man mittels typoscript marker durch inhalte ersetzt habe ich bereits verstanden. aber wie mache ich das nun mit einer extension? und wie greife ich auf diese zu? bei den "großen" extensions erscheinen ja dann immer links im menü neue funktionen. bei mir ist das ja nur ne daten hin-und herschiebe geschichte.

ich lege z.b. meine designvorlage auf eine seite, diese vorlage ist mit platzhaltern (markern) versehen. wie kann ich jetzt diese mit einer extension durch die inhalte des sysfolders ersetzen???

nachher wird das ganze dann noch freakiger. denn wenn jemand zum beispiel im formular einträge für "technische daten" ausgewählt hat, soll auch eine seite "technische daten" entstehen. hat er daten dieser kategorie nicht ausgewählt, soll auch eine solche seite nicht generiert werden.

ich müsste also eine extension schreiben, die zum einen anhand der datenbankeinträge zuerst ermittelt:

1.) bei welchen attributen gibt es einträge in der tabelle => welche seiten müssen erstellt werden?

2.) aus dem ergebnis wird ein seitenbaum mit den benötigten seiten generiert

3.) die eingegebenen inhalte müssen an die stellen der platzhalter platziert werden

also alles nicht so wirklich trivial...