Drupal user
Fórum
Drupal version

Ahoj netušíte jak by šlo předávat hodnotu proměnné resp. v poli formuláře poté co je odeslán přes ajax a znovu rebuildovaný přes drupal_rebuild_form a pak odeslaný přes return? Přes rebuild se totiž vytvoří zcela nový a prázdný formulář a v rámci tohoto rebuildu se volají i funkce jako hook_form_alter. Potřebuji totiž zachovávat jednu hodnotu mezi formuláři a to je $form['#res_ajax'] a tu také protlačit i do hook_form_alter behem rebuildu.

Důvod mého snažení je, že chci tuto proměnou využít v hook_form_alter k úpravě hodnot v podmínce právě během rebuildu:

<?php
hook_form_alter
(&$form, &$form_state$form_id) {

  if (isset(
$form['#res_ajax'])) {

    
// udělej něco...

  
}

}
?>

viz. callback - část kodu pro ajax kde je použitý rebuild:

<?php
    $node 
$form_state['node'];
    if (!empty(
$node->nid)) {
      
$id $form['#id'];
      
$new_node = (object) array(
        
'uid' => $node->uid,
        
'name' => $node->name,
        
'type' => $node->type,
        
'language' => $node->language,
        
'ajax_form' => 1,
        
'delta' => $node->delta,
        
'form_id' => $id,
      );
      
$new_form_state = array();
      
$new_form_state['build_info']['args'] = array($new_node);
      
$new_form_state['values'] = array();
      
$new_form_state['method'] = $form_state['method'];
      
form_load_include($new_form_state'inc''node''node.pages');

      
dsm($form) ---> zde je proměnná ještě k dispozici

      $form 
drupal_rebuild_form($node->type '_node_form'$new_form_state);

      
dsm($form) ---> zde už není proměnná k dispozici

      $form
['#id'] = $id;
      return 
$form;
    }
?>

Díky za pomoc

 

Přidat komentář