CCK-Modul Felder "verknüpfen"
am 22.09.2010 - 11:33 Uhr in
Hallo zusammen,
ich habe ein CCK-Modul erstellt und möchte noch eine Erweiterung reinbauen. Ich habe ein Feld, das ich auf unbegrenzt anlege. Jetzt möchte ich die Felder quasi "verbinden". Ich möchte eigentlich nur innerhalb eines Feldes auf das Array eines anderen Feldes zugreifen. Über $element gelange ich anscheinend nur zu den Informationen in eben diesem Feld.
Der Zweck: Ich will innerhalb eines Feldes ein Dropdown-Menü mit den anderen Feldern als Auswahlmöglichkeit, um die zwei Felder zu verbinden.
Versteht irgendjemand was ich meine? :-) Gar nicht einfach zu erklären...
- Anmelden oder Registrieren um Kommentare zu schreiben

Also ich verstehe es nicht.
am 22.09.2010 - 13:36 Uhr
Also ich verstehe es nicht. Du willst irgendeine Selectbox anlegen, aber warum aus anderen Feldern der Form und nicht statisch bleibt unverständlich.
Beste Grüße
Werner
ist denn so wichtig, warum
am 22.09.2010 - 13:40 Uhr
ist denn so wichtig, warum ich es machen will? :-)
ich kann sie nicht statisch machen, weil die Optionen erst in den anderen Feldern angelegt werden.
Gibt es denn einen hook, mit dem ich noch einmal durch das fertige Formular durchgehen kann?
Wenn Du das so haben willst,
am 22.09.2010 - 13:52 Uhr
Wenn Du das so haben willst, ist das eine rein clientseitige Angelegenheit, da der Server zu diesem Zeitpunkt den Inhalt der Felder noch nicht kennt. Dann mußt Du das mit JavaScript/jQuery lösen. Dann wird jedesmal, wenn eines der anderen Felder eingegeben wird, die Selection mittels JavaScript erweitert.
Beste Grüße
Werner
Ja, aber so weit bin ich noch
am 22.09.2010 - 13:55 Uhr
Ja, aber so weit bin ich noch gar nicht.
Ich will zuerst mal die Felder, die schon angelegt sind, wenn ich den Inhalt bearbeite.
Also ich lege einige Felder an, speichere das, bearbeite das nochmal und hätte dann gern die Felder im Dropdown.
Das heißt Du möchtest erst
am 22.09.2010 - 13:57 Uhr
Das heißt Du möchtest erst den Benutzer bestimmte Texte eingeben lassen und dann daraus zum Beispiel eine Text auswählen lassen. So nach dem Motto gib mir fünf Namen und jetzt sag mir daraus Deinen Lieblingsnamen?! Das ganze auf einem einzelnen Eingabeformular zu machen halte ich für recht kompliziert, außer du verarbeitest die Daten bereits im Hintergrund per AJAX-Requests oder direkt per JavaScript im Formular. Eine Alternative wären vielleicht mehrseitige Formulare. Damit könntest Du auf der ersten Seite die Text-Eingaben abfragen und auf einer Folgeseite dann die Auswahl entsprechend zur Verfügung stellen. Ich befürchte nur, da wirst Du nicht um die manuelle Programmierung Formulars herum kommen. Oder kennt da jemand inzwischen ein Modul für? Weitere Infos findest Du mit dem Suchbegriffen Multi Step Node Form oder Multi Page Form.
Gruß,
Sven
Joa, ich glaub so ähnlich
am 22.09.2010 - 14:01 Uhr
Joa, ich glaub so ähnlich hätte ichs gern. :-)
Es wäre aber okay, wenn man zwischendurch speichern müsste.
Also ich lege z.B. fünf Felder an, speichere. Gehe dann nochmal rein und verknüpfe zwei.
Weiß jemand einen hook, mit
am 23.09.2010 - 08:38 Uhr
Weiß jemand einen hook, mit dem man nochmal das fertige Formular ändern kann?
Hat niemand eine Idee?
am 27.09.2010 - 08:41 Uhr
Hat niemand eine Idee?
Meinst du evtl. so etwas:
am 27.09.2010 - 08:57 Uhr
Meinst du evtl. so etwas: http://drupal.org/project/conditional_fields?
Bzw. was meinst du, wenn Du
am 27.09.2010 - 09:01 Uhr
Bzw. was meinst du, wenn Du sagst, dass Du ein CCK-Modul erstellt hast?
Wenn es wirklich ein Modul ist, dann meine Idee: Wenn User Ausfüllen anfängt, Cookie oder Sitzungasvariable mit Formular-ID setzen, User gibt Daten ein, speichert, nächste Seite, mit Form-ID Datenbank nach bisherigen Einträgen fragen, ausgeben.
So müsste das doch funktionieren?!
Also es ist wirklich ein
am 27.09.2010 - 09:11 Uhr
Also es ist wirklich ein Modul. Du meinst also, man gibt etwas ein, speichert und kommt dann auf eine weitere Einstellungsseite?
Ich habe halt z.B. 20 meiner Felder. Man kann in allen Feldern entweder Text eingeben oder ein Bild hochladen. (Ist etwas kompliziert, warum nicht gleich Text und Bild in einem Feld sind, aber das soll so sein) Jetzt will ich, dass man zu jedem Bild ein Text-Feld wählen kann.
Und dazu dachte ich mir, dass ich bei allen Bild-Feldern ein Dropdown-Menü mache, in dem ich die Text-Felder referenziere. Ich kriege es aber einfach nicht hin, dass ich in den Bild-Feldern rausfinden kann, welche Text-Felder es noch gibt, weil in dem hook, in dem ich meine Felder ausgebe, jedes Feld einzeln durchlaufen wird. So hab ich im $element immer nur das momentane Feld.
War das verständlich?
Daher dachte ich mir eben, ob es noch einen nachgelagerten hook gibt, in dem alle Felder auf einmal durchlaufen werden.
Das ist aber dann der
am 27.09.2010 - 09:30 Uhr
Das ist aber dann der klassische Fall eines Multistep-Formulars. Du bringst das Formular solange immer wieder (in veränderter/ausgefüllter Form), bis der Benutzer den finalen Save-Button klickt. Erst danach sicherst Du mit node_save den Datensatz.
Beste Grüße
Werner
Aber da kommt doch das
am 27.09.2010 - 09:37 Uhr
Aber da kommt doch das gleiche Formular wieder oder nicht? Also die gleichen Felder nur mit Angaben, die auf die Benutzereingaben folgen?
Das hängt von Deiner
am 27.09.2010 - 09:45 Uhr
Das hängt von Deiner Programmierung ab. Da Du bei einem eigenen Modul üblicherweise das Formular mittels Form-API selbst aufbaust, kannst Du es bei jedem Neuaufbau anders darstellen. Ein Beispiele wäre, der Benutzer fordert über einen Button einen neuen Satz Felder an und bringst das Formular dann mit den alten ausgefüllten und den zusätzlichen leeren Feldern. Du mußt mit der Form-API mal ein bischen experimentieren. Damit geht erstaunlich viel.
Beste Grüße
Werner
Ich versteh nur nicht, wie
am 27.09.2010 - 09:50 Uhr
Ich versteh nur nicht, wie ich dann beim nächsten Formular innerhalb eines Feldes auf andere Felder zugreifen kann. Das geht doch dann genauso wenig wie im ersten Schritt oder nicht?
Dann sieh Dir bitte das
am 27.09.2010 - 12:18 Uhr
Dann sieh Dir bitte das Tutorial auf Drupal.org zu Multistep Forms an. Da ist es mit einem "doppelseitigen" Formular vorgeführt. Es lassen sich aber vom Prinzip her beliebig viele Folgeseiten bauen.
Beste Grüße
Werner
Das ist aber die Form für das
am 27.09.2010 - 12:29 Uhr
doppelt
Das ist aber die Form für das
am 27.09.2010 - 12:29 Uhr
Das ist aber die Form für das Anlegen der Felder oder? Also mir geht es um die Felder beim Anlegen von Inhalt.
Das ist die Form zum Anlegen
am 27.09.2010 - 13:12 Uhr
Das ist die Form zum Anlegen von Inhalt. Probiere es doch einfach mal in einer lokalen Installation aus. Du mußt Dich mit diesen Möglichkeiten ohnehin erst vertraut machen, um es sinnvoll einzusetzen.
Beste Grüße
Werner