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:

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:

$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ář