Egy textfield mezőt az alábbiak szerint szeretnék megjeleniteni, de a default_value nem jelenik meg. Miért?
$ertek="ide ird a nevet"; $form['nev'] = array( '#type' => 'textfield', '#default_value' => $ertek, '#size' => 50, '#maxlengh' => 255 ); $neve=drupal_render($form['nev']); $out=$neve; $out.= drupal_render($form); $form['pager'] = array('#value' => $out); return $form;
köszi
Drupal verzió:
Fórum:
Semmi ötlet?
Lehet hogy bug?
Türelem
Amíg nem jön válasz böngészd már át a kvikstartot lécci. Az eredeti kérdésedre is csak ezt tudtam volna írni, meg egy "ezmiez"-t.
Azért mert a dolgok nem úgy működnek ahogy mi elképzeljük, hogy működniük kéne még nem feltétlenül a dolgok a hibásak.
Valamit nagyon rosszul csinálsz, vagy én nem értem.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Röviden
De ha a dolgok nem úgy mennek, ahogy elképzeljük azt valahova csak feljegyzi valaki mert próbálunk logikus dolgokat létrehozni, használni. Ha nincs feljegyezve, akkor vagy még nem vette senki észre hogy nem úgy működik ahogy szeretnénk vagy hibás a dolog. De az is lehet hogy direkt ilyen valamilyen okból, és másképp kell megoldani a problémát.
De ez tökmindegy :-)
Röviden:
A form elem megjelenik rendesen, de a #default_value nem ha a pager-en keresztül akarom kiiratni.
Itt már néztem:
- drupal.org
- google
- Apress - Pro Drupal Development Apr 2007
- Developing for Drupal
- Nagy Gusztáv - Webes Tartalomkezelő rendszerek
nem értem, mi a baj
Szia! Ha átnézted a pp által adott linket, akkor nem értem, mi nem megy ezen.
Amit te akarsz, azt így kell:
Készítesz egy függvényt, ami összepakolja a formodat:
Megjegyzem, szerintem az nem valami szép, ha így kéred meg a usert, hogy írja be a nevét. Én inkább megadnám #title paraméternek, és akkor nem a textfield-ben, hanem felette lesz látható.
Szükség van még egy submit gombra, ezt is láthatod.
Aztán ezt még ugye szeretnénk megjeleníteni egy oldalon:
Ennyi az egész. Tulajdonképpen az történik, hogy a form függvényedben elkészítesz egy paraméterlistát egy asszociatív tömbben, és ezekkel a paraméterekkel a megfelelő helyen meghívod a drupal_get_form függvényt, ami elkészíti az űrlapodat.
Aztán még kell egy
valamilyen_form_submit
nevű függvény, ami akkor hajtódik végre, amikor a felhasználó az OK-re kattint. Ha szeretnéd ellenőrizni a beírt adatokat, akkor azt egyvalamilyen_form_validate
nevű függvénnyel teheted meg.Amit te idekevertél, a drupal_render függvény akkor lehet érdekes az űrlapok szempontjából, amikor felül szeretnéd írni az alapértelmezett drupal-os form sminket.
A
$form['pager'] = array('#value' => $out);
sort meg nem tudom, honnan szedted! :)Erről van szó, nem
Erről van szó, nem bonyolítanám ha nem muszáj:
,,Amit te idekevertél, a drupal_render függvény akkor lehet érdekes az űrlapok szempontjából, amikor felül szeretnéd írni az alapértelmezett drupal-os form sminket."
-------------------
Táblázatba szeretném tenni a form elemeket, vagyis:
első sor első mező egy string, második egy textfield (title nélkül, és ne kérdezd miért nem teszem elé inkább a #title-t #prefix és #suffixal.)és így tovább.
-------------------
az ,,$output .= theme('table', ..." táblázat készítésnél is kell a pager, úgy se jelenik meg a #default_value.
-------------------
,,Megjegyzem, szerintem az nem valami szép, ha így kéred meg a usert, hogy írja be a nevét."
Egy példaprogramban mindegy mit írok.
köszi.
táblázat
Ne haragudj, de nem értem. Szóval, van egy táblázatod, ami két sorból és egy oszlopból áll, ugye? Az első sorban egy tetszőleges string, a másodikban a textfield. Eddig stimmel?
Szóval, ha így szeretnéd, akkor egy két soros táblázathoz minek neked pager? Egyáltalán, miért jó ez neked? Leírnád lécci a konkrét feladatot, és akkor hátha tudunk segíteni!
Minek táblázat?
Nem értem, hogy minek táblázat egy form-hoz?
http://www.skyrocket.be/2006/01/09/semantic-horizontal-forms/
http://www.dynamicdrive.com/style/csslibrary/item/css-tableless-form/
http://www.uie.com/articles/web_forms/
http://www.sitepoint.com/article/accessible-online-forms/
Üdv, Pali
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan
A lényeg az, hogy a form
A lényeg az, hogy a form elemeket egymás mellé is tudjam tenni úgy ahogy akarom, mindegy hány sor, hány oszlop, lényeg hogy tetszés szerint helyezzem el őket. Nem ragaszkodom a pager-hez, de más tippet még nem kaptam.
Vegyél példának egy ,,file megnyitás" dialógus ablakot, vagy ilyesmit. Ehhez kell egy táblázat hogy mindent a megfelelő sorba és oszlopba tegyek.
Ennél jobban nem tudom elmagyarázni, esetleg rajzolhatok.
köszi
theming
Jó, akkor nézd meg a pp által belinkelt oldalon a Theming Forms című részt.
Készítened kell egy
theme_valamilyen_form
nevű függvényt, amivel felülírod az alapértelmezett drupal-os űrlapmegjelenést. Itt mindent úgy pakolsz össze, ahogy te akarod, és igen, ide kell adrupal_render
függvény.Táblázatba is rendezheted a form elemeket, ha mindenképpen azt szeretnéd, csak nézz utána, hogy hogyan készítesz táblázatot.
Itt elég jól le van írva:
http://www.group42.ca/theming_101_%E2%80%93_theme_table_function
Sok sikert! ;)
ez kell nekem:
nem tudtam hogy igy is elfogadja.
ki is próbálom hamarosan
köszi
nem jó
Ezzel az egész drupal lap felett jelenik meg a táblázat, ilyent már sikerült réggebben is produkálnom. :-)
Mellesleg a #default_value így se jelenik meg. Ha simán jelentetem meg a form elemeket, akkor ott a #default_value rendesen megjelenik, szóval a szintaktikája biztos jó.
A theme_valami_form funkció nekem nem akar működni, nem változtat semmin.
miért?
Igy csinálom
böngésző
Ne reload-dal töltsd újra az oldalt, hanem menj a címsorba és ott nyomj egy entert. Az előbbinél ugyanis megőrzi a böngésződ, hogy semmi nincs a beviteli mezőben és ezért nem látszik.
a return elé még tedd be ezt!
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
nem változott
Az a baj, hogy semmi nem változott. Tök nem értem, mindenhol ezt a példát látom.
Egyszerűen egymás alá teszi a 2 form elemet.
miért mit vártál??
Már miért ne tenné egymás alá, amikor két külön sorba rakod?
Rakd egy sorba.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Igaz, rosszul irtam. De a
Igaz, rosszul irtam.
De a tábla első oszlopában ott kellene lenni a két stringnek.
ez mukodik
köszönöm
átrágom.