Přeskočit přímo na text


hook_form_alter a získání hodnoty z formuláře

Kategorie: Jak na to?
Týká se verze: Drupal 6.x

Ahoj, potřeboval bych po odeslání formuláře pouze přesměrovat na URL adresu v drupalu s parametry, které získám z vyplněného formuláře. Zjistil jsem, že se používán hook_form_alter, ale nedaří se mi získat hodonoty z formuláře. Zkoušel jsem form_state[‚values‘][‚pracdoba_od‘] jako u _submit, ale nefungovalo to. Následující kód by měl napovědět. Děkuji za každou radu.

Ondra function userform_period_prdoba() {
$form[‚pracdoba_od‘] = array(
‚#type‘ ⇒ ‚date_popup‘,
‚#title‘ ⇒ ‚Pracovní doba od‘,
‚#default_value‘ ⇒ $node[‚datum_od‘],
‚#size‘ ⇒ 60,
‚#description‘ ⇒ t(‚Zadejte období‘)
);

$form[‚pracdoba_do‘] = array(
‚#type‘ ⇒ ‚date_popup‘,
‚#title‘ ⇒ ‚Pracovní doba do‘,
‚#default_value‘ ⇒ $node[‚datum_do‘],
‚#size‘ ⇒ 60,
‚#description‘ ⇒ t(‚Zadejte obodobí‘)
);

$form[‚nepritomnost_pozn‘] = array(
‚#type‘ ⇒ ‚textarea‘,
‚#title‘ ⇒ ‚Nepřítomnost komentář‘,
‚#default_value‘ ⇒ $node[‚poznamka‘],
‚#size‘ ⇒ 60,
‚#maxlength‘ ⇒ 64,
‚#description‘ ⇒ t(‚Komentář nepřítomnosti‘)
);

$form[‚pracdoba_submit‘] = array(
‚#type‘ ⇒ ‚submit‘,
‚#value‘ ⇒ t(‚Zobrazit pracovní dobu‘)
);

return $form; }

function pracovnidoba_form_alter(&$form, $form_state, $form_id) {
$od = $form[‚nepritomnost_pozn‘];
switch ($form_id) {
case ‚userform_period_prdoba‘:
$od = $form_values[‚nepritomnost_pozn‘];
//$od = „d“;
$form[‚#redirect‘] = ‚pd_uzivatel/prehled-prdoba/‘.$od.‚/1‘;
break;
} } 

 

hook_form_alter se volá při

hook_form_alter se volá při konstrukci formu. Pokud potřebuješ reagovat na odeslaný položky, musíš v userform_period_prdoba_submit

Děkuji, to vše vysvětluje.

Děkuji, to vše vysvětluje.

kdyby jsi chtel v budoucnu

kdyby jsi chtel v budoucnu ovlivnovat priste form, ktera je v jinem modulu a chtel ziskat hodnoty, tak muzes pomoci form_alter pridat #submit, kde specifikujes vlastni submit funkci, ktera se zavola po odeslani formulare

<?php
function menu_form_alter(&$form, $form_state, $form_id) {
   ...
    $form['menu']['parent'] = array(
      '#type' => 'select',
      '#title' => t('Parent item'),
      '#default_value' => $default,
      '#options' => $options,
      '#attributes' => array('class' => 'menu-title-select'),
    );
    $form['#submit'][] = 'menu_node_form_submit';
}
?>

viz. http://api.drupal.org/…rence.html/6#…

V hook-form_alter mas zle

V hook-form_alter mas zle argumenty. namiesto &$form, $form_state, $form_id to ma byt $form, &$form_state, $form_id. A $od = $form[‚nepritomnost_pozn‘]; by malo najskor byt $od = $form[‚nepritomnost_pozn‘][0][‚value‘];

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.

Drupal meet-up mobilni web 2011

Hledat

Přihlášení

Poslední komentáře