value von "form_build_id" und "form_token" herausbekommen
am 03.11.2010 - 10:51 Uhr in
Hallo Drupalis,
wie bekommt man die "form_build_id" und "form_token" values aus einem, wie im folgenden Beispiel (in einen Node) eingebundenden Formular heraus?
$node = new stdClass();
$node->type = 'zielvereinbarung1_rueck_mrueck';
module_load_include('inc', 'node', 'node.pages');
$output = drupal_get_form('zielvereinbarung1_rueck_mrueck_node_form', $node);
print $output;Dies sind die dabei erzeugten values, welche ich für eine externe Weiterverarbeitung dringend benötige.
<input type="hidden" name="changed" id="edit-changed" value="" />
<input type="hidden" name="form_build_id" id="form-87e0f1d90193efcbf5f97677bf3485ec" value="form-87e0f1d90193efcbf5f97677bf3485ec" />
<input type="hidden" name="form_token" id="edit-zielvereinbarung1-rueck-mrueck-node-form-form-token" value="f682496996310b33e82106694764e632" />
<input type="hidden" name="form_id" id="edit-zielvereinbarung1-rueck-mrueck-node-form" value="zielvereinbarung1_rueck_mrueck_node_form" />Ich hoffe Ihr könnt mir helfen wie ich an diese Werte rankommen kann.
Ich habe bereits die Form_Api-Hilfe durchgewälzt, aber ich will ja keine Formulare aufbauen sondern aus vorhandenden Formular Werte herausziehen.
Vielen Dank schon im voraus für Eure Mühen
Bjoern
- Anmelden oder Registrieren um Kommentare zu schreiben

Warum läßt Du nicht einfach
am 03.11.2010 - 10:58 Uhr
Warum läßt Du nicht einfach das Node-Formular seine Arbeit tun, nämlich einen Node neu anlegen. Über Rules kannst Du Dich jetzt in den Ablauf einklinken, indem Du als Bedingung angibst, daß Deine Regel nach dem Erstellen eines speziellen Nodetyps ausgeführt werden soll. Dort kannst Du auch mittels PHP-Code eine Funktion in einem von Dir geschriebenen Modul aufrufen. Dann brauchst Du Dich um die Hidden-Fields in der Form weiter nicht zu kümmern.
Beste Grüße
Werner
Hallo Werner,das ist
am 03.11.2010 - 11:52 Uhr
Hallo Werner,
das ist richtig.
Nur leider muss ich diese Formwerte für einen Flash aufbereiten und die restliche Steuerung etc. (inklusive absenden des Formulars) über Flash realisieren.
Aus diesem Grund muss ich diese Werte ausgelesen bekommen.
Vielen Dank dennoch schonmal für Dein bemühen
Bjoern
Es muss mit 1 Klick funktionieren das ist die Herausforderung.
Aktuell funktioniert es auch (wenn ich z. B. die oben genannten Werte benutze) allerdings nur bis zum nächsten Login oder bis zu einem anderen Nutzer (Werte sind nicht variabel).
Hi Bjoern, ist deine Frage
am 06.01.2011 - 18:03 Uhr
Hi Bjoern,
ist deine Frage noch aktuell oder hast du inszwischen eine Lösung gefunden?
Ich hätte da eine Idee. Man könnte in der Funktion zielvereinbarung1_rueck_mrueck_node_form dem $form Array folgende Zeile hinzufügen: $form['#after_build'] = array('_modulename_get_hidden_values');
Und dann folgend auf die Werte zugreifen:
function _modulename_get_hidden_values($form, &$form_state) {drupal_set_message($form['form_id']['#value']); //ist aber gleich der Formular-definierenden Funktion
drupal_set_message($form['form_token']['#value']);
drupal_set_message($form['form_build_id']['#value']);
return $form;
}
Diese Funktion wird nach dem Aufbau des Formulars aufgerufen, d.h. Drupal hat dem Formular bereits diese Hidden-Felder hinzugefügt. Mir ist nur unklar, an welcher Stelle benötigst du diese Informationen...
Weil so kannst du sie in der Funktion _modulename_get_hidden_values ablesen. Problem ist nur, dass sie zu Laufzeit aufgerufen wird, direkt nach dem Aufbau das Formulars. Sie direkt aufzurufen bringt
gagegen nix. Weitere Implementierung hängt von deiner Problemstellung ab :-)
Grüße
hook_form_alter
am 06.01.2011 - 18:12 Uhr
oder noch einfacher den Hook hook_form_alter() implementieren und auf gleiche Weise auf die Werte zugreifen:
http://api.drupal.org/api/drupal/modules--system--system.api.php/functio...