¿Es posible rellenar automáticamente una lista de selección desde una tabla de la base de datos?
Por supuesto que sí.
Para ello tendrá que escribir una Pieza del tipo Antes del Formulario (formulario > Avanzado > Más opciones > Piezas del Formulario), es decir, un pequeño script en PHP que se ejecutará antes de que se cargue el formulario en el navegador del usuario. Dentro de este código puede especificar la declaración SQL, consultar la base de datos y situar los resultados en el formulario.
Los valores de una lista de selección tienen la forma 0;foo;bar, por lo que sólo necesita crear dinámicamente una cadena (string) con los valores deseados y alimentarlos con los valores generados por la funciona anteriormente mencionada. Aquí tiene un ejemplo.
Pieza Antes del Formulario:
$this->execPieceByName('ff_InitLib'); //Incluye la librería de BreezingForms $db = JFactory::getDBO();//Obtiene el objeto de la base de datos //Aquí debe crear su consulta $db->setQuery('Select username From #__users '); $result = $db->loadColumn(); //carga el resultado de la consulta $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);
Use este script haciendo los cambios necesarios para apuntar a la tabla correcta.