Feature #17972
Updated by Carsten Rose 4 months ago
* New textfield in form for javascript per formelement * QFQ Variables inside the javascript get replaced (ex: {{id:R0}} = 25, {{SELECT name FROM person WHERE vorname = "Benjamin"}} = Baer) * New variables for references to make dynamic update possible. Bsp: Form Element: name%d, im Javascript block ref returns a css selector: {{ref:name}} = [data-reference="name%d"] * All Javascript text get added after the form <pre> <form class="qfq-form"> ... </form> <script> [insert here] </script> </pre> Beispiel script im form: <pre> // document.querySelectorAll("{{&name%d:V}}") document.querySelectorAll("{{ref:name%d}}") # no jquery if($("{{&name%d}}").value if($("{{ref:name%d}}").value === "{{SELECT name FROM person WHERE vorname = "Benjamin"}}") { $("{{&matrikelnr}}").hide() $("{{ref:matrikelnr}}").hide() } </pre> Beispiel Ausgabe: ausgabe: <pre> // document.querySelectorAll("[data-reference='name%d']") # no jquery if($("[data-reference='name%d']").value === "Baer") { $("[data-reference='matrikelnr']").hide() } </pre> Anmerkung: * Fuer die Referenzvariable war urspruenglich @{{ref:<name>}}@ vereinbart und nichts gesagt zum Store. * Das Zeichen ':' hinter 'ref' kollidiert mit dem Delimiter fuer Store, Escape, Action ... - nicht gut. * Neu: Anstelle von @{{ref:...@ wird vorgeschlagen (und ist implementiert) @{{&<name>:V}}@ * Das '&' ist in C als Adressoperator bekannt - das passt hier ziemlich gut. * Der STORE_VAR wurde gewaehlt weil bereits andere System Angaben wie RANDOM, MIMETYPE usw. enthaelt. Der STORE_FORM ist mehr fuer Content gedacht, der STORE_RECORD passt hier gar nicht. * Mit dem '&' am Anfang sollten Kollisionen sehr unwahrscheinlich sein. * Bei der Suche nach dem