Beviteli űrlap - hogyan?

aruna képe

Többértékű user reference mezőim vannak (ennél több is, mint ami alább látszik) és az lenne a feladat
hogy minden kiválasztott usernek meg lehessen adni a nyelvet is.

Ilyen most:

+--------------------------------------------------------+
|  Szerzők                                               |
|--------------------------------------------------------|
|  ^   +----------------------+                          |
|<-+-> | szerzo1_user         |                          |
|  v   +----------------------+                          |
|+------------------------------------------------------+|
|  ^   +----------------------+                          |
|<-+-> | szerzo2_user         |                          |
|  v   +----------------------+                          |
+--------------------------------------------------------+
+-------------------------+
|  Újabb elem hozzáadása  |
+-------------------------+

+--------------------------------------------------------+
|  Fordítók                                              |
|--------------------------------------------------------|
|  ^   +----------------------+                          |
|<-+-> |  fordito1_user       |                          |
|  v   +----------------------+                          |
|+------------------------------------------------------+|
|  ^   +----------------------+                          |
|<-+-> |  fordito2_user       |                          |
|  v   +----------------------+                          |
+--------------------------------------------------------+
+-------------------------+
|  Újabb elem hozzáadása  |
+-------------------------+

és ilyenek kéne lennie,
vagy valami hasonlónak:

+--------------------------------------------------------+
|  Szerzők                                               |
|--------------------------------------------------------|
|  ^   +----------------------+  +-----------------+---+ |
|<-+-> | szerzo1_user         |  | Magyar          | V | |
|  v   +----------------------+  +-----------------+---+ |
|+------------------------------------------------------+|
|  ^   +----------------------+  +-----------------+---+ |
|<-+-> | szerzo2_user         |  | Magyar          | V | |
|  v   +----------------------+  +-----------------+---+ |
+--------------------------------------------------------+
+-------------------------+
|  Újabb elem hozzáadása  |
+-------------------------+

+--------------------------------------------------------+
|  Fordítók                                              |
|--------------------------------------------------------|
|  ^   +----------------------+  +-----------------+---+ |
|<-+-> | fordito1_user        |  | Magyar          | V | |
|  v   +----------------------+  +-----------------+---+ |
|+------------------------------------------------------+|
|  ^   +----------------------+  +-----------------+---+ |
|<-+-> | fordito2_user        |  | Magyar          | V | |
|  v   +----------------------+  +-----------------+---+ |
+--------------------------------------------------------+
+-------------------------+
|  Újabb elem hozzáadása  |
+-------------------------+

Ami eszembe jut két megoldásként:

1. a legmunkaigényesebb:

- Amikor kimegy a form megszámolom, hogy egy user reference mezőnek hány értéke (beviteli mezője) van, és ugyanannyi lenyíló listát rakok ki, a user reference mező alá, és ezeket mellé float-olom.

- Ha újabb mezőt adnak hozzá (ajax), akkor én is hozzáadok jQuery-vel egy mezőt. Itt még az is külön téma, hogy a form api a jQuery-is plussz mezőimet elfogadja.

- Ha átrendezik a mezők sorrendjét, jQuery-vel rendezhetem a nyelveket tartalmazó listákat is.

2. többértékű textfield a nyelveknek lenyíló listák helyett

- A minden user reference mező mellé float-olok egy többértékű beviteli mezőt, ahová beírják kézzel a nyelvek kódját ('hu', 'en' stb.)

- És odafigyelnek, hogyha átrendezik a user-eket, vagy újabbat adnak hozzá, akkor a nyelvkódot tartalmazó mezőket is átrendezik/kitöltik.

- A szerver oldalon ezt még le kell validálni, hogy ne lehessen olyan user, akihez nincs nyelv rendelve.

----------

Igazából elég összetett a form, meg a mögötte lévő business logic, ezért gondolkodom abban, hogy a form-ot bővítsem valami megoldással.

Kicsit, hosszú lett a kérdés. Köszönöm, annak, aki elolvassa.

Abban reménykedek, hátha van valamilyen pofonegyszerű megoldás, ami nekem nem jutott eszembe.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
aruna képe

a legjobb eddig:

- Minden user reference mezőre ráakasztok egy onChange jQuery eseménykezelőt, ami akkor fut le, ha beírták/megváltoztatták a usernevet.

- Az eseménykezelőben feldobok egy popup ablakot, ahol ki kell választania a nyelvet.

- A kiválasztott nyelvet eltárolom egy custom attributumaként a mezőnek, pl.: 'data-lang' (html5)

- A kiválasztott nyelvet megjelenítem a user ref. mező mellett.

- A megjelenített nyelvre kell még egy onClick esemény, hogy változtatni lehessen a nyelven.

Ez messze a legegyszerűbb eddig. Bár itt is vannak problémák:

- Ha változtat a user nevén, újra kell választania a nyelvet.

- Ha átrendezi a mezőket, akkor a custom attributum (data-lang) is "mozogni" fog a mezővel, kérdés, hogy hova írjam ki a nyelvet, hogy a kiírás is kövesse a mozgatott mezőt?

- A form elküldése után a form API a jQuery-vel létrehozott attributumot továbbítja? Vagy érvényteleníti a form-ot?

0
0