Form, default_value feltöltése post változóból

quick képe

A form default_value értékét szeretném megadni, hogy a lekérdezés után is a képernyőn a kiválasztott év legyen.

  $form['adatok']['ev']    = array(
    '#title'         => 'Év',
    '#type'          => 'select',
    '#options'       => $betoltve_ev,
    '#default_value' => isset($_POST['ev']) ? $_POST['ev'] : 0, 
  );

valamiért így nem kapja meg a sorszámot ($_POST['ev']) de ha én adom meg 3 akkor a harmadik elemet jeleníti meg.

Drupal verzió: 
aries képe

Próbálj meg egy ilyet beletenni: <?php $form['#redirect'] = FALSE ?> Valószínű az a gond, hogy újratölt az oldal és elveszted a $_POST értékét. Egyébként nem így kellene ezt kezelned, a Forms API-nak külön módszere van (keress rá a doksiban a „storage” szóra) erre.

0
0
quick képe

Nem veszti el

drupal_set_message(isset($_POST['ev']) ? $_POST['ev'] : 0);

ha így kiíratom akkor szépen megjelenik a sorszám.
De viszont, ha
  $form['adatok']['ev']    = array(
    '#title'         => 'Év',
    '#type'          => 'select',
    '#options'       => $betoltott_ev,
    '#default_value' => isset($_POST['ev']) ? $_POST['ev'] : 0, //$betoltve_ev[$_POST['ev']]), 
  );

próbálkoztam így is
  $form['adatok']['ev']    = array(
    '#title'         => 'Év',
    '#type'          => 'select',
    '#options'       => $betoltott_ev,
//    '#default_value' => $ss, //$betoltve_ev[$_POST['ev']]), 
    '#default_value' => isset($_POST['ev']) ? $betoltott_ev[intval($_POST['ev'])] : 0,  
  );

semmi változás
0
0
quick képe

Igazad volt tényleg elveszti, olyan mintha 2x futna le a form betöltés.
Mert mikor kiírattam a tartalmat elő sorban volt érték a második sorban már nulla értékkel jelenítette meg.

A "redirect" jó megoldás volt.

Köszi a segítséget

0
0