Php Joomla-管理面板中的动态下拉列表

Php Joomla-管理面板中的动态下拉列表,php,javascript,joomla,Php,Javascript,Joomla,我已经在Joomla的管理面板中向我的用户创建表单添加了一个下拉列表!1.5(使用.xml文件)。我的问题是,它的内容必须是动态的(来自外部源文件)。我的问题是我可以在哪里(以及可能如何)创建它。如果您使用的是xml表单,则可以使用sql类型字段 <param name="user" type="sql" default="" label="Select an User" query="SELECT id, username FROM #__user" key_field="id" val

我已经在Joomla的管理面板中向我的用户创建表单添加了一个下拉列表!1.5(使用.xml文件)。我的问题是,它的内容必须是动态的(来自外部源文件)。我的问题是我可以在哪里(以及可能如何)创建它。

如果您使用的是xml表单,则可以使用sql类型字段

<param name="user" type="sql" default="" label="Select an User" query="SELECT id, username FROM #__user" key_field="id" value_field="username" />


阅读更多-

您可以创建自己的类型。 在default.xml中,您将有如下内容:

<url addpath="/administrator/components/com_componentname/elements/">
    <param name="id" type="myType" default="0" label="SELECT_LABEL" description="SELECT_DESC" />
</url>

}

我遇到了这个问题-就像你告诉我的那样,我的代码如下所示:

    <?php

jimport( 'joomla.html.html.select' );

class JElementKlasa extends JElement {
    var     $_name = 'Klasa';

    function fetchElement($name, $value, &$node, $control_name)
    {

            $list = array(1=>'a', 2=>'b');
            $options = array();
            foreach($list as $key=>$value)
                $options[] = JHTML::_('select.option', $key, $value);

            //array_unshift($list, JHTML::_('select.option', '0', "Take it"));

            return JHTML::_('select.genericlist',  $options, 'klas', '', 'value', 'text');
 }

 ?>


但它并没有出现在那里——它实际上为它创造了空间,但它是空的:(同时我会继续尝试修复它。

是的,这会很好,但是这些数据是从外部应用程序生成的.txt文件加载的。没有办法更改它。哦,这正是我要找的,你能告诉我$list数组有什么格式吗?那会很好。非常感谢!这是一个
JM的数组odel
,通常由数据库查询返回。但是您可以使用自己的函数创建对象。我在答案中发布了我的代码-以清晰地显示代码。这里也解释了所有内容
    <?php

jimport( 'joomla.html.html.select' );

class JElementKlasa extends JElement {
    var     $_name = 'Klasa';

    function fetchElement($name, $value, &$node, $control_name)
    {

            $list = array(1=>'a', 2=>'b');
            $options = array();
            foreach($list as $key=>$value)
                $options[] = JHTML::_('select.option', $key, $value);

            //array_unshift($list, JHTML::_('select.option', '0', "Take it"));

            return JHTML::_('select.genericlist',  $options, 'klas', '', 'value', 'text');
 }

 ?>