Re: XForm Formular direkt per PHP bauen - select_sql
Verfasst: 30. Mai 2015, 12:24
Für die Addon-Entwicklung wollte ich noch wissen, wie den die Syntax von XForm in der Erstellung eines Backend-Formulars heisst. Das ist zwar nicht mehr XForm; trotzdem brauchts mans bei Erstellung eines Addons mit formularbefüllter Tabelle im Frontend, das vom Redaktor dann aber editierbar sein soll (z.B. für Kommentare, Mitgliederanmeldungen, Eventagendas etc.). Hier was ich zum Laufen gebracht habe als select_sql
Pipe:
im Frontend/Modul direkt via PHP:
im Backend, z.B. für Formular-Ausgabe in einer Addon-Page:
Bzw. mit Concat, wenn man gleich mehrere Werte braucht, um Z.B. einen Serienbrief-Export vorzubereiten oder ähnliches:
Achtung: doppelte Anführungszeichen sind entscheidend.
Hinweis: redaxo/include/classes/class.rex_form.inc.php kann Hinweise geben.
Pipe:
Code: Alles auswählen
select_sql|label|Bezeichnung:|SELECT row1 AS id, row1 AS name FROM rex_table ORDER BY row1
Code: Alles auswählen
$xform->setValueField('select_sql', array("label","Bezeichnung","SELECT row1 AS id, row1 AS name FROM rex_table ORDER BY row1","","","1","bitte wählen","0"));
Code: Alles auswählen
$field = &$form->addSelectField('label');
$field->setLabel($I18N->msg('prefix_label'));
$select = &$field->getSelect();
select->setSize(1);
$select->addOption($I18N->msg('prefix_pleasechoose'),0);
$query = 'SELECT row1 AS label, row1 as id FROM rex_table ORDER BY row1';
$select->addSqlOptions($query);
$select->setAttribute('style','width: 150px');
Code: Alles auswählen
$field = &$form->addSelectField('label');
$field->setLabel($I18N->msg('prefix_label'));
$select = &$field->getSelect();
select->setSize(1);
$select->addOption($I18N->msg('prefix_pleasechoose'),0);
$query = 'SELECT CONCAT(row1, ", ", row2) AS label, CONCAT(row1, ", ", row2) as id FROM rex_table ORDER BY row1';
$select->addSqlOptions($query);
$select->setAttribute('style','width: 150px');
Hinweis: redaxo/include/classes/class.rex_form.inc.php kann Hinweise geben.