哗啦啦!通过调用 DB 填充注册表上的列表框


Joomla! Populate List Box on Registration Form by calling DB

提前感谢您的帮助...

我已经根据需要修改了注册.xml文件和其他文件,以便在mhy Joomla!网站上的注册表中添加其他表格。 这些字段目前都是文本框,我想为状态等项目创建列表框。 我不想输入选项和值,而是从数据库上的表中提取。

我的注册.xml文件中的此代码有效:

<field name="statelist2" type="list" 
default=""
label="COM_USERS_REGISTER_STATE_LABEL"
description="COM_USERS_REGISTER_STATE_DESC"
message="COM_USERS_REGISTER_STATE_MESSAGE">
<option value="CT">CT</option>
<option value="MA">MA</option>
</field>

我的注册.xml文件中的这段代码不起作用,我尝试删除对数据库的调用,以便使用一些 php 加载页面:

<field name="statelist" 
type="list"
default=""
label="COM_USERS_REGISTER_STATE_LABEL"
description="COM_USERS_REGISTER_STATE_DESC"
message="COM_USERS_REGISTER_STATE_MESSAGE">
<?php
$x = "CT";
$z = "NY";
echo "<option value='" . $x. "'>" . $x . "</option>"; 
echo "<option value='" . $z. "'>" . $z . "</option>"; 
?>
</field>

我的问题:1) 我必须将代码放在哪里(在哪个文件中)才能创建列表框或用潜在值填充它?

2)为了利用现有的Joomla!框架,我在注册中看到.php文件的一些 loadFormData 和 getData 函数 - 我可以在其中放置代码以在呈现注册表单后填充注册表中的项目吗? 我在想这样的事情,但不确定。

<?php 
    //init Joomla Framework 
    define( '_JEXEC', 1 ); 
    define( 'DS', DIRECTORY_SEPARATOR ); 
    define( 'JPATH_BASE', realpath(dirname(__FILE__).DS.'..' )); 

    require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); 
    require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); 
    $mainframe = JFactory::getApplication('site'); 
    //DBQuery 
    $database =& JFactory::getDBO(); 
    $query = "SELECT * FROM #__tbl_State;"; 
$database->setQuery($query); 
    //$result = $database->query();
$items = ($items = $db->loadObjectList())?$items:array(); 
    //print_r($result); 
?> 
<field
        name="STUDENT_COURSE"
        type="sql"
        multiple="false"
        size="1"
        label="Interested In Course"
        description="COM_HELLOWORLD_FORM_DESC_UPDHELLOWORLD_GREETING"
        query="select Course_Id, Course_Name from student_course"
        key_field="Course_Id"
        value_field="Course_Name"
        default="0"
required="true"
        >
     <option value="">Please Select Course</option>
</field>
哇,

在我看来,你正在努力工作。

除非我错过了什么,而且我经常这样做,否则你可以简单地使用正确的工具来完成工作;)http://docs.joomla.org/SQL_form_field_type

否则,您可能会找到适合您的另一种字段类型。http://docs.joomla.org/Standard_form_field_types