Dropdown Liste
am 31.10.2011 - 21:06 Uhr in
Hallo
ich muss ja sagen es fällt mir ein wenig schwer mich in PHP einzuleben, aber es wird schon werden.
Ich habe ein Formular mit einer Selectliste. Der Datentyp selber ist node_reference. Ich würde nun gerne den Wert auslesen bzw. auch später setzen. Das setzen klappt mit $form['field_co_game_league']['und']['#default_value'], wobei mir die "Indizierung" mit UND immer nicht gefällt.
Gibt es da eine Alternative und wie lese ich den Wert (den key, in diesem Fall müsste es eine nid sein) wieder aus, wenn der Benutzer ihn geändert hat. Gib es hierzu vielleicht ein kurzes Beispiel.
Vielleicht sollte ich noch bemerken, dass ich den Wert brauche bevor das Formular gesendet wird. Es geht letztendlich darum eine andere Dropdownbox in Abhängigkeit von der ersten zu befüllen.
Danke und Gruß
- Anmelden oder Registrieren um Kommentare zu schreiben

Bei deiner eigentlichen Frage
am 04.11.2011 - 15:10 Uhr
Bei deiner eigentlichen Frage kann ich dir nicht helfen, aber ich kann dir erklären was das UND ist. Das ist eine Abkürzung für undefined und ist wichtig im Zusammenhang mit Mehrsprachigkeit. 'undefined' heißt in diesem Fall, dass etwas sprachneutral ist und in allen Sprachen angezeigt wird.
Ansonsten ist ein intensives Lesen der Forms API nicht zu umgehen. http://api.drupal.org/api/drupal/includes--form.inc/group/form_api/7
Vor allem in den Kommentaren stehen oftmals weiterführende Infos.
Ok
am 04.11.2011 - 16:06 Uhr
Danke für die Info.
Ich bin ja nicht wirklich zu faul die Doku zu lesen, aber manchmal sind es einfach zu viele Informationen. :-)
kenn ich auch. die Forms API
am 04.11.2011 - 16:30 Uhr
kenn ich auch. die Forms API lässt auch manchmal Teile aus, die man genau dann benötigt, wenn die Info nirgends steht. Irgendwann findet man dann einen Kommentar, der das nötige beschreibt.
Nochmal ein Versuch
am 04.11.2011 - 23:36 Uhr
Vielleicht hast du ja doch noch eine Idee.
Ich habe eine einfache Selectbox. Diese ist gefüllt mit Daten vom Typ node_reference und sieht wie folgt aus. Ich würde gerne den ausgewählten Wert der Selectbox abfragen. Ich habe den Teil mal fett markiert. Das sollte doch auch ohne Submit der Form möglich sein. In ASP.NET ist das kein Problem, also bin ich mir sicher, dass es hier auch gehen muss. form_state geht nich, da die Werte erst beim Senden der Form gefüllt werden.
Array
(
[#type] => container
[#attributes] => Array
(
[class] => Array
(
[0] => field-type-node-reference
[1] => field-name-field-co-game-league
[2] => field-widget-options-select
)
)
[#weight] => 5
[#tree] => 1
[#language] => und
[und] => Array
(
[#entity_type] => node
[#bundle] => co_game
[#field_name] => field_co_game_league
[#language] => und
[#field_parents] => Array
(
)
[#columns] => Array
(
[0] => nid
)
[#title] => League
[#description] =>
[#required] => 1
[#delta] => 0
[#type] => select
[#default_value] => Array
(
)
[#multiple] =>
[#options] => Array
(
[_none] => - Select a value -
[73] => Jugend Bundesliga
[13] => Landesliga 2011/2012
)
[#value_key] => nid
[#element_validate] => Array
(
[0] => options_field_widget_validate
)
[#properties] => Array
(
[strip_tags] => 1
[optgroups] => 1
[empty_option] => option_select
[filter_xss] =>
)
[#after_build] => Array
(
[0] => field_form_element_after_build
)
)
)
HTML
am 05.11.2011 - 00:23 Uhr
Hallo.
Was Du vorhast, ist mit HTML nicht machbar. Du kannst den gewählten Wert des Dropdowns nicht mit Drupal abfragen, ohne das Formular abzusenden.
Allerdings kannst Du den Wert ganz einfach mittels jQuery abfragen:
alert($('selector...').val());Jetzt kommt es allerdings darauf an, was Du mit dem Wert anstellen möchtest ...
JQUERY
am 05.11.2011 - 00:59 Uhr
Naja
ich habe mal für einen Verein in ASP.NET eine Webseite gebaut, um Spielpläne zu verwalten. Ähnliches wollte ich mit Drupal realisieren.
In der ersten Dropdown soll die Liga ausgewählt werden. Mit dieser Information soll dann eine weitere bzw, 2 weitere Dropdownisten (Heim und Gast) gefüllt werden (aus der Datenbank), nämlich mit den Mannschaften, die für diese Liga definiert wurden.
Ich weiß, dass ist nicht wirklich eine Anfängerfrage, aber über einen Hinweis bzgl. der Vorgehensweise wäre ich dankbar. Ich lese dann auch wieder Doku.Es gibt zwar Sportmodule für Drupal, aber die sind nicht ausreichend für das was ich vorhabe.
Danke und Gruß
Joachim
kemijo schrieb In der ersten
am 05.11.2011 - 07:35 Uhr
In der ersten Dropdown soll die Liga ausgewählt werden. Mit dieser Information soll dann eine weitere bzw, 2 weitere Dropdownisten (Heim und Gast) gefüllt werden (aus der Datenbank), nämlich mit den Mannschaften, die für diese Liga definiert wurden.
Könnte dieses Modul hier: http://drupal.org/project/hierarchical_select nicht die Lösung für Dein Problem sein?
PS: Im übrigen ist es immer hilfreich, wenn Du bei Fragen wenigstens die verwendete Drupal Version angibst.
http://drupal.org/project/hierarchical_select
am 07.11.2011 - 09:43 Uhr
Da ich aktuell das ganze unter Drupal 7 versuche, ist das hierarchical_select sicherlich der richtige Ansatz, aber wenn ich es richtig verstanden habe bräuchte ich leider die Node Reference Variante, die noch nicht portiert ist. :-(
Ich habe noch ein wenig Doku gewälzt. Es gehört zwar sicherlich nicht mehr in die Anfängerkategorie, aber es müsste eigentlich wie folgt umgesetzt werden.
3 Dropdownlisten.
1) Dropdown 1 wird gefüllt mit den Einträgen.
2) Dropdown 2 und 3 sind letztendlich abhängig von Dropdown 1, d.h. es wird ein sog. Dependent Select
3) Dropdown 1 braucht ein wenig AJAX + JQuery um den Wert als "Key" für die Dropdown 2 und 3 zu liefern.
4) Dropdown 2 und 3 müssen aktualsiert werden in Abhängigkeit vom "Key" in Dropdown 1
Hierbei habe ich noch 1-2 Fragen
1) Macht das geschriebene Sinn
2) Kann ich über hook_form_alter "AJAX" code anhängen, also die '#ajax' Eigenschaft setzen. Ich habe hierfüfür nämlich keine eigene Form implementiert.
3) Aktualisierung der Dropdown 2 und 3. Geht das direkt über eine DB Abfrage oder kann ich einen "View" nutzen, der entsprechend parametrisiert ist. (Parameter ist dann natürlich der Key aus Dropdown 1
Oh man. Ich bin schon wieder viel zu tief in der Materie für ein privates Projekt....
Danke