Javascript 从列表中选择用户

Javascript 从列表中选择用户,javascript,php,mysql,moodle,Javascript,Php,Mysql,Moodle,创建myMoodlenewmodule后,我希望能够从系统中的当前用户列表中进行选择,并为他们分配一些其他数据。如下所示: 手动添加用户 用户[选择] 租车站[文本字段] 车辆类型[textfield] 每日价格[可用价格列表] 我构建了数据库,添加了文本字段、表单和选择用户的按钮,但是如何构建获取用户列表和添加所选用户的功能呢 我没有在Moodle中找到这样的例子来使用它。如果您预期系统中会有很多用户,那么请扩展用户选择器库类 根据给出的信息,我认为您正在寻找一种根据用户ID进行过滤的方法,以

创建my
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
,它会在一些地方使用。