Hogyan állítható be egy rejtett webform elem értéke?

Kolos képe

I have a Webform in drupal 7. I want to add a hidden field porgramatically to it, and I would like to set the value of this field per form. I want to achieve all these in a custom submit function. At the moment everything is working, except to set the value. I googled it a lot, tried out hundreds of codes but non of them worked in my case.

Here is my code:

Sziasztok!

Van drupal 7-ben egy webformom, aminek szeretném ha lenne egy rejtett mezője, aminek az értékét egy saját submit-függvényben szeretném beállítani kitöltésenként.
Minden működik, de sajnos a rejtett mező értékét nem tudom átállítani.
Itt a kódom:

  1. <?php
  2. $form['#submit'][] = 'webform_custom_submit';
  3.  
  4. function webform_custom_submit($form, &$form_state) {
  5. if ( !array_key_exists('my_uniq_id', $form['#node']->webform['cids'] ) ){
  6. $components[] = array(
  7. 'name' => 'My Unique ID',
  8. 'form_key' => 'my_unique_id',
  9. 'type' => 'hidden',
  10. 'weight' => 1,
  11. 'pid' => 0
  12. );
  13. webform_ensure_record($form['#node']);
  14. foreach ($components as $component) {
  15. $component['nid'] = $form['#node']->nid;
  16. $form['#node']->webform['components'][] = $component;
  17. webform_component_insert($component);
  18. }
  19. }
  20. $my_uniqe_key = generate_some_unique_key_function();
  21. //Itt szeretném beállítani az értékét, de eddig semmi sem működött
  22. $form['my_unique_id']['#value'] = $my_uniqe_key;
  23. }

Nagyon köszönök bármi segítséget, már több órát googliztam, 100 variációt kipróbáltam, de sehogy sem működött.
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Kolos képe

Sziasztok!
Megtaláltam a megoldást, amivel el tudom menteni a rejtett mezők értékét a saját submit-függvényben :

  1. <?php
  2. module_load_include('inc', 'webform', 'includes/webform.submissions');
  3. $node = node_load($form_state['storage']['details']['nid']);
  4. $submission = webform_get_submission($node->nid, $form_state['storage']['details']['sid']);
  5. foreach ($form['#node']->webform['components'] as $key => $component) {
  6. if ( $component['form_key'] == 'my_unique_id' ){
  7. $submission->data[$key][0] = $my_uniqe_key;
  8. }
  9. }
  10. webform_submission_update($node, $submission);

u.i.: Tényleg nem tudom szerkeszteni az eredeti kérdésemet, vagy én vagyok nagyon béna? Véletlenül benne maradt egy angol szöveg-darab.
2
0
Balu Ertl képe

Köszönjük, hog közzétetted a megoldásodat. Így épül a közös tudásbázisunk! :)

0
0