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
Tak jsem nakonec použil…
Tak jsem nakonec použil Session, tam dočasně uložim proměnnou :-)
Přidat komentář