Javascript 从列表中选择用户
创建myJavascript 从列表中选择用户,javascript,php,mysql,moodle,Javascript,Php,Mysql,Moodle,创建myMoodlenewmodule后,我希望能够从系统中的当前用户列表中进行选择,并为他们分配一些其他数据。如下所示: 手动添加用户 用户[选择] 租车站[文本字段] 车辆类型[textfield] 每日价格[可用价格列表] 我构建了数据库,添加了文本字段、表单和选择用户的按钮,但是如何构建获取用户列表和添加所选用户的功能呢 我没有在Moodle中找到这样的例子来使用它。如果您预期系统中会有很多用户,那么请扩展用户选择器库类 根据给出的信息,我认为您正在寻找一种根据用户ID进行过滤的方法,以
Moodle
newmodule
后,我希望能够从系统中的当前用户列表中进行选择,并为他们分配一些其他数据。如下所示:
手动添加用户
用户[选择]
租车站[文本字段]
车辆类型[textfield]
每日价格[可用价格列表]
我构建了数据库,添加了文本字段、表单和选择用户的按钮,但是如何构建获取用户列表和添加所选用户的功能呢
我没有在Moodle中找到这样的例子来使用它。如果您预期系统中会有很多用户,那么请扩展
用户选择器库
类
根据给出的信息,我认为您正在寻找一种根据用户ID进行过滤的方法,以保存针对该用户的自定义信息 您可能会发现一个名为single_select的小部件很有用,它创建了一个下拉菜单,当所选值发生更改时发送POST数据 例如:
global $DB, $OUTPUT;
$posturl = new moodle_url('/local/newmodule');
$options = $DB->get_records_menu('user', array(), '', "id, CONCAT(firstname, ' ', lastname)");
$singleselect = new single_select($posturl, 'userid', $options);
echo $OUTPUT->render($singleselect);
这将输出下拉框,并在页面重新加载时向页面发送“userid”。然后,您可以获取该用户ID:
$userid = optional_param('userid', 0, PARAM_INT);
并在从表单检索数据以保存数据时使用它
if ($data = $myform->get_data()) {
$data->userid = $userid;
$DB->update('mytable', $data);
}
嗨,杰米,我不推荐那条路线。许多Moodle/Totara系统有1000个用户,因此会有大量的滚动。
user\u selector\u base
类创建了一个带有搜索选项的对话框。Jamie的建议很容易实现,我对它进行了测试,效果很好,但用户数量仍然太多。我会尝试使用user\u selector\u base
,但找不到实现它的任何示例。如果在代码中搜索user\u selector\u base
,它会在一些地方使用。