Ausgang und Ziel:
- Formular mit dem Formulargenerator
- darin u.a. ein select-Feld mit Länderauswahl
- unter dem Formular sind alle vorhandenen Einträge aufgelistet
- nach dem submit erscheint unter dem Formular wieder die Liste, aber entspr. gefiltert (funktioniert)
- im Formular soll das Land selected sein, das ausgewählt wurde (bzw. später auch mehrere)
Ansatz:
- im form_select.html5 Template (bzw. entspr. umbenannt und eingebunden) selbst den selected-Status setzen
Trotz langem Probieren und Recherchieren komme ich an dieser Stelle (im form_select-Template) nicht an die POST- oder auch GET-Werte ran. Deshalb wollte ich mir diese mit GLOBALS durchschleifen.
Vor dem Formular ist dafür mit {{file::...}} folgendes eingebunden - Code incl. meiner Testversuche :-)
PHP-Code:
1 <?php
2 // übertragene Formulardaten
3 $get_submit = Input::getInstance()->get('submit');
4 $get_land_arr = Input::getInstance()->get('land');
5 $get_thema_arr = Input::getInstance()->get('thema');
8
9 $GLOBALS['ed_form_land'] = array();
10 $GLOBALS['ed_form_land'] = $get_land_arr;
11 $GLOBALS['ed_test'] = "ed_test_string";
12 /*echo '<pre>';
13 dump($GLOBALS['ed_form_land']);
14 echo '</pre>'; */
15 global $objEdTest;
16 $objEdTest->teststring = "testtext";
17 ?>
Ich kann mir am Ende der Seite oder auch mitten im Formular korrekt die Inhalte aus GLOBALS anzeigen lassen mit
PHP-Code:
1 <?php
2 echo '<pre>';
3 dump($GLOBALS['ed_form_land']);
4 echo '</pre>';
5 echo '<pre>';
6 dump($GLOBALS['ed_test']);
7 echo '</pre>';
8 echo '<pre>';
9 dump($GLOBALS['objEdTest']->teststring);
10 echo '</pre>';
11 ?>
Code:
Array
(
[0] => BG
[1] => DE
)
string(14) "ed_test_string"
string(8) "testtext"
Wenn ich innerhalb des form_select-Templates bin und mir bspw. unter den option-Zeilen zum Test die Teststrings eintragen lassen will, kommt nur "<!-- -->" heraus, dump() meint entsprechend NULL.
PHP-Code:
<?php if ($option['type'] == 'option'): ?>
<option value="<?= $option['value'] ?>"<?= $option['selected'] ?>><?= $option['label'] ?></option>
<?php echo '<!-- ' . $GLOBALS['ed_test'] . ' -->';?>
<?php echo '<!-- ' . $GLOBALS['objEdTest']->teststring . ' -->';?>
<?php endif; ?>
Da GLOBALS überall verfügbar sein soll, muss ich wohl einen (dämlichen) Fehler machen ...
Viele Grüße
McS
Lesezeichen