Jó estét!
Sajnos megakadtam egy meglehetősen primitív problémával. Van egy rádiógombcsoportom és egy legördülő menüm:
// rádió gombok: $form['fizetes']['comment_preview'] = array( '#type' => 'radios', '#title' => t('Paing type'), '#required' => TRUE, '#default_value' => variable_get('comment_preview', 0), // próbáltam így is: '#options' => array(t('bank'), t('post'), t('personal')), // és így is: '#options' => array( '1' => t('bank'), '2' => t('post'), '3' => t('personal'), ), ); // legördülő menü: $options2 = array(); $options2['none'] = t('0 pcs'); for ($f=1;$f<=10;$f++) $options2["$f"] = "$f ".t(' pcs'); $options2['more'] = t('more'); $form['what']['feed_item_length'] = array( '#type' => 'select', '#title' => t('Choose one'), '#required' => TRUE, '#default_value' => variable_get('feed_item_length','0'), '#options' => $options2, );
és amikor ki szeretném kérni belőle az adatokat, akkor nem adja ki. Így próbálkozok:
drupal_set_message('Fizetés: '.$form_state['values']['fizetes']);
sőt, még úgy is megpróbáltam, ahogy a checkboxokat kezeltem, de még így se működött (erre számítottam is, hogy nem lesz jó, de az ember mindent kipróbál, amit cska lehet):
foreach($form_state['values']['fizetes'] as $x) { if($x != "") { drupal_set_message('Fizetés: '.$x); } }
Kerestem neten megoldásokat és más példákban működött a "$form_state['values']['fizetes']"-es megoldás. Nem értem nálam miért nem jó. Vagy lehet elnéztem valamit a példákon.
Köszönöm szépen a segítséget
Fórum:
gyorstipp
1. devel modul felrak, bekapcsol
2. drupal_set_message -> dpm függvényhívásra cserél.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
A $form_state['values'] tömb típusú
A $form_state tömb típusú ezért az 'Array' szöveget adja vissza, ha csak simán kiíratod. Pórbáld az alábbi módon:
Kiíratni a form_submit függvényben próbáld és ellenőrizni kell, hogy a form_submit függvénynél zárójelben megadtad-e a ($form, &$form_state) paramétereket az alábbi módon:
Bekapcsolt devel modul esetén pedig az említett dpm($input, $name = NULL) függvényt is lehet használni: http://ratatosk.backpackit.com/pub/1836982-debugging-drupal
-------------------------------
http://www.realdream.hu
kiírattam ezzel
kiírattam ezzel, és ezt kaptam:
a "select" és a "radios" típusú mezők nem kerültek bele valamiért...
Sőt a "select" mezőket bekeríti vörössel és ezt a hibaüzenetet adja:
"Nem érvényes választást talált a rendszer. Javasolt a webhely gazdájával felvenni a kapcsolatot."
a Devel-t próbáltam, alapból is fenn volt, de nem adott semmi eredményt, és üres az oldalhoz tartozó Devel menü is üres volt...
Nem sztring, hanem tömb
Annyi a probléma, hogy a
drupal_set_message()
sztringek kiíratására való, és amit te szeretnél kiírni, az egy tömb.A Devel modult tényleg tedd fel, ahogy pp is ajánlotta, abban vannak hasznos függvények tömbök megjelenítésére a puritán
print_r
helyett.azt hittem ezek is egy
azt hittem ezek is egy értéked adnak vissza, mint a text mező vagy a dátum:
mert elvileg select-nél és radios-nál is csak 1-et lehet kijelölni egyszerre, ezért gondoltam, hogy csak 1 értéked adnak vissza, mert itt ha ez tömb akkor eléggé túl van bonyolítva a rendszer. Viszont az előző hozzászólásomban, ahogy írtam nem is kerül be a form_state()-be, akkor ezek szerint máshogy kellene rá hivatkoznom? és ha igen, hogyan?
találtam egy ilyen témát a
találtam egy ilyen témát a neten:
http://drupal.org/node/683500
Persze ez alapból másról szól, de itt van az, hogy így egyszerűen kiszedi egy "radios" típusú elemből az eredményt:
nálam miért nem működik az ilyesmi?
Itt egy megoldás
Nekem is ez volt a gondom pár hete, és így oldottam meg a dolgot:
próbáld ki így:
vagyis a "$form['what_is_this']['feed_item_length']"-ből (és értelemszerűen a default_value mellől is) ki kell venni a "['feed_item_length']" részt, és elvileg így jól megy :)
persze biztos lehet úgy is, hogy az benn marad, csak azzal anno nem foglalkoztam, és ahogy nézem nálad se fontos ez a mező :)
valóban, így működik
valóban, így működik, köszönöm szépen :)