Form írása, több választós select mező

lili_ képe

Sziasztok!

D5 alatt írok olyan modult, olyan formot kellene megvalósítanom, amiben select listát kellene
megjelenítem, de olyan módon hogy ne csak egy hanem többet is ki lehessen belőle választani.

--lekérdezném a a users táblából az összes regisztrált felhasználó felhasználói nevét és az uid mezőjének az értékét, ezeket egy tömbbe pakolom rendre be kulcs-értékpár (uid=>name) alapján,
és ebből a tömbből töltöm fel a select list-emet
ez eddig menne és megy is!

-- ami nagyon érdekelne engem, hogy hogyan lehet megadni azt hogy többet is ki tudjak belőle választani?

és a választás után a kiválasztott értékeket be akarom rakni a nekik megfelelő helyre, pl:
van olyan táblám ami adott szervezeti egységekről tartalmaz adatokat, és van egy olyan
mezője "karbantartók" és ide ebbe a mezőbe kellene az "uid" értéket, vagy több kiválasztás esetén az uid értékeket vesszővel elválasztva elmenteni az adatbázisba.
A szerv_egyseg táblám "karbantartók" mezője végül is azoknak a csoportoknak az uid-ját tartalmazza , - vel elválasztva, melyek hozzáférhetnek az adott szervezeti egység adataihoz.

TÖBB VÁLASZTHATÓS SELECT LIST D5 ALATT?

pp képe

http://api.drupal.org/api/file/developer/topics/forms_api_reference.html...

Csoportnak gid-je van a felhasználónak van uid-ja.
Vesszővel elválasztva nem írunk be több adatot egy mezőbe, tessék csinálni neki egy másik táblát! A Te megoldásod csak akkor jó, ha az a kérdés, hogy mely csoportok/felhasználók adminisztrálhatják az adott szervezeti egységet. Az ellenkező irányból már vért fogsz hugyozni. (Adott felhasználó mely szervezeteket adminisztrálja) Az olyan fejlesztő, aki csak a ma igényeinek fejleszt és nem gondol a holnapra a később nagyon sokat fog dolgozni. ;)

pp

0
0
lili_ képe

A Te megoldásod csak akkor jó, ha az a kérdés, hogy mely csoportok/felhasználók adminisztrálhatják az adott szervezeti egységet.

pontosan ez a feladatom.

0
0

mini

pp képe

És mit fogsz csinálni, hogy ha az lesz a kérdés, hogy bizonyos csoport/felhasználó mely szervezetet adminisztrálja.

Jön egy kis kérés, hogy lécci jelenjen már meg ez az apróság a user profil oldalon. Na akkor mit csinálsz?

Most ugye az első normál formáról beszélünk, hogy van-e értelme vagy nincsen.
Azonban Te tudod.

(pont ezért van az, hogy ma már szinte nulla az esélye annak, hogy én átvegyek egy más által írt kódot, ugyanis az ilyen béna megoldások miatt van az, hogy egyszerűbb újra gondolni/írni az egész alkalmazást, mint megpróbálni kijavítani... vagyis a javítás pontosan az, hogy az elmaradt átgondolást megtegyük a tisztelt előző fejlesztő helyett.)

pp

0
0
lili_ képe

A kérdésem az volt hogyan lehet olyan select list-et megvalósítani, melyben egyszerre akár
többet is ki lehet választani, ahhoz h valóban mire akarom használni csupán azért írtam le,hogy ne kapjam egyből azt a választ, hogy nem lehet érteni mit akarok pontosan...
de írtam is, hogy a többi részével nincsen gondom, másrészt nem más kódját vettem át vagy veszem át hanem a sajátomat írom.

miért van az hogy sokszor nagyon beszólsz embereknek?
ok elhiszem h kiakadsz dolgokon meg mindig klassz dolgokat írsz és segítessz
de nem lehet mindenki egyformán jó fejlesztő...

0
0

mini

pp képe

Igazad van, off voltam. Téged csak az érdekelt, hogy hogyan tudsz multiselect select-et csinálni. Erre meg is adtam a választ. A baj ott volt, hogy igyekeztem többet adni.
Megmutattam én hol találtam meg a megoldást és legközelebb Te hol fogod megtalálni. Felhívtam a figyelmedet egy olyan alap dologra, melyet érdemesnek tartanék átgondolni. Rossz stílusom miatt Te egyből elutasítottad ezt. Sajnálom. Igyekszem legközelebb óvatosabban fogalmazni.

A lényeg, hogy ez a megoldás, hogy egy összetett adatot tárolunk egyetlen egy mezőben hibás felfogás és homlokegyenest szembemegy a relációs adatkezelés alapjaival. Ez simán elfogadható lenne, hogy ha csak az lenne a feladat amit leírtál, de és itt jön egy de, szinte borítékolni lehet, hogy előbb utóbb felmerül az ellenkező irányú lekérdezés igénye is. Ekkor a Te adatbázis megoldásoddal a kód egy nagy adag hányadék lesz mivel másképpen nem lehet megoldani. Ha megfelelő adatszerkezetet használsz akkor el tudod ezt kerülni, és később is szép és hatékony kódot tudsz írni.
Régen volt egy olyan kiegészítés, amivel a tartalom típusokhoz lehetett mezőket hozzáadni. Ez volt a flexinode. Ez pontosan úgy tárolta az adatokat mint ahogyan Te is teszed. Tök jól lehetett használni, mindaddig amíg nem kellett szűrni az egyes mezők alapján. Ez a pont volt a flexinode halála és ez tette császárrá a CCK-t mely külön táblában tárolja az összetett adatokat. Ez tette lehetővé, hogy a views-al könnyedén integrálhatóvá vált a CCK.

A lényeg, hogy a Te megoldásod egy olyan szemléletmódot mutat, mely pusztán a problémára koncentrál. Ez a szemlélet sajnos ma már nem tartható. Specifikálom a feladatot és megvalósítom, majd használom. Ez régen jó volt ma már nem megfelelő hozzáállás. Lehet így dolgozni működni is fog, de nem fog megfelelni a megrendelődnek, mert mire elkészülsz már mások lesznek az igényei. Joggal fogja kérni, hogy ezt az icipicikét még tedd bele. Ekkor vagy előre gondolsz erre és minimális idő alatt belerakod, vagy belegányolod, vagy újraírod az egészet. Az első megoldás szerintem ami jó, a másodikkal az a baj, hogy hosszútávon a sok gányolás miatt széthullik az egész hóbelebanc, a harmadikkal meg az a baj, hogy rengeteget kell dolgoznod és az eredmény(ami látszik) csekély, nem fogod tudni eladni a 20 munkaórát, ha 1 munkaórának tűnik amit dolgozni kell vele.

Kérlek olvasd át úgy még egyszer ezt a bejegyzést, hogy tudod ez az ember segíteni akar neked. Ha megbántottalak hát elnézést. Olvasd el rád semmi bántót nem írtam. A szemléletmódod viszont nem a legjobb.

pp

0
0
lili_ képe

nem bántottál meg sőt igazat is adtam és adok is neked!
de jelenleg a form kezelésnél tartok munkámban, és itt akadtam el
amint ezen túl vagyok akkor majd elgondolkodom és felvetem azt amit tanácsoltál nekem
az illetékeseknek!

kösz

0
0

mini

lili_ képe

tervbe van véve h nem csak a felhasználói nevet, hanem a teljes nevet is kötelezően meg fogjuk adni, adatni ha új felhasználót fogunk létrehozni és ezzel már a későbbiekben lehet mit kezdeni.?!

0
0

mini

Bálint képe

Szia!
Azt hiszem, erre van szükséged:
http://api.drupal.org/api/file/developer/topics/forms_api_reference.html...

Javaslom, a formod submit függvényébe írd be ezt a sort a tesztelés során:

print_r($form_values);

Így láthatod, mik és hogyan kerülnek bele a $form_values-ba.

Remélem, segítettem! ;)

0
0
lili_ képe

#type="select" form elem kellene! de ezt is meg fogom nézni és köszönöm

0
0

mini

sajt képe

lili_ képe

átolvastam hasznos

0
0

mini