Ist es möglich eine Selectliste aus einer Datenbank Tabelle zu füllen?
Ja das ist möglich, dazu brauche wir ein wenig PHP und SQL.
Öffnen Sie Ihr Formular und gehen zu Formular Einstellungen->erweitert->mehr optionen->Formular Teile -> Vor Formular ->spezial
In diesem Fenster können Sie nun beliebiges PHP ausführen um Ihre Datenbank abzufragen und dann die Elemente in Ihrem Formular zu befüllen.
Die Werte für die Selectliste brauchen in Breezingforms ein spezielles Format : 0;foo;bar Wir müssen nun aus den Datenbankwerten einen entsprechenden String erzeugen und diesen dann der Liste zuweisen.
Im folgenden Beispiel machen wir eine Abfrage auf die Users Tabelle in Joomla und wollen eine Selectliste mit allen Usernames erstellen. Damit das Beispiel funktioniert erstellen Sie bitte zuerst eine Selectliste in Ihrem Formular mit dem Namen "select1" und löschen bitte die vorhandene Listen Definition.
Anschließend kopieren Sie folgenden Code in den vor Formular Bereich:
$this->execPieceByName('ff_InitLib'); //Include BreezingForms Library $db = JFactory::getDBO();//Get Database Object //Create your own query here $db->setQuery('Select username From #__users '); $result = $db->loadColumn(); //load the result from the query $test = ""; for ($i = 0; $i < count($result); $i++) { $test .= "0;".$result[$i].";".$result[$i]."\n"; } function ff_setSelectList($name, $value) { global $ff_processor; for ($r = 0; $r < $ff_processor->rowcount; $r++) { $row =& $ff_processor->rows[$r]; if ($row->name==$name) $row->data2 = $value; unset($row); } // for } // ff_setSelectList ff_setSelectList('select1', $test);
Jetzt noch speichern und testen, Sie sollten eine Selectliste mit allen Benutzernamen Ihrer Seite angezeigt bekommen.