提前感谢您的帮助...
我已经根据需要修改了注册.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