2012-04-11 49 views
0

在登记表上填写名单框在此感谢您的帮助...Joomla!通过致电DB

我修改了registration.xml文件和其他文件,以便在我的Joomla注册表中添加其他表单。现场。这些字段目前都是文本框,我想为状态等项目创建列表框。我不想输入选项和值,而是从数据库的表中拉出。

这段代码在我registration.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> 

这段代码在我registration.xml文件不工作,我试图消除调用DB只得到网页一些加载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> 

我的问题(S): 1)我在哪里必须把(在什么文件)的代码,以便可以创建列表框或与潜在值填充呢?

2)为了充分利用现有的Joomla!框架,我在registration.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); 
?> 

回答

2
<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>