Saját magát meghívó form adatai

gyuri23 képe

Sziasztok!

Hogyan éri el a saját magát meghívó form az adatait?

  1. function teszt_form($form,&$form_state){
  2. $message = 'Itt lennének a form értékei :<pre>' . print_r($form_state,true) . '</pre>';
  3. echo $message;
  4. drupal_set_message($message);
  5.  
  6. $form['valmilyan_ertek'] = array(
  7. '#type' => 'textfield',
  8. '#title' => 'Érték',
  9. '#size' => 5,
  10. '#maxlength' => 3,
  11. );
  12. $form['submit'] = array(
  13. '#type' => 'submit',
  14. '#value' => 'Mehet',
  15. '#submit' => array('teszt_form'),
  16. );
  17. return $form;
  18. }

Itt nem értem miért teljesen más az output a két esetben.

echo $message;
drupal_set_message($message);

A drupal_set_message esetén ott van az érték, de nem tudok rá hivatkozni.

Ezzel próbálkoztam de nem működik:

$form_state['values']['valmilyan_ertek']

Drupal verzió: 
nevergone képe

Szia!

Ez a rész teljesen rossz teszt_form() nevű függvényedben:

  1. $form['submit'] = array(
  2. '#type' => 'submit',
  3. '#value' => 'Mehet',
  4. '#submit' => array('teszt_form'),
  5. );

Ugyanis a referencia szerint a #submit tulajdonsághoz azok a függvények kellenek, amelyek a form elküldése után feldolgozzák azok értékeit. Ez a függvény nem azonos azzal a függvénnyel, ami a form elemeit adja vissza. Érdemes megnézned az Examples for Developers modul példáit.

1
0
gyuri23 képe

Most ismerkedem a drupal fejlesztéssel, a példákat már néztem de lehet, hogy alapoktól rossz a koncepcióm. Direkt hívtam meg magát a formot újra, mert amit csinálok oldal az úgy nézne ki

űrlap (egy egyszerű számolást végez)
eredmény
szöveg

Amikor használjuk akkor az űrlapon maradunk továbbra is, ezért gondoltam, hogy saját magát hívja meg és egy függvényben megoldom az egészet.
Akkor ez no way?

0
0
gyuri23 képe

Erre gondoltam:

  1. function mymodule_myform($form, $form_state) {
  2. $form['mytextfield'] = array(
  3. '#type' => 'textfield',
  4. '#title' => 'My Textfield',
  5. );
  6. $form['submit'] = array(
  7. '#type' => 'submit',
  8. '#value' => 'Submit',
  9. );
  10. if (isset($form_state['values'])) {
  11. $form['page_output'] = array('#markup' => 'Submitted value: ' . $form_state['values']['mytextfield']);
  12. }
  13. return $form;
  14. }
  15.  
  16. function mymodule_myform_submit($form, &$form_state) {
  17. $form_state['rebuild'] = TRUE;
  18. }
4
0