从列表中选择用户

时间:2015-09-24 14:55:47

标签: javascript php mysql moodle

创建Moodle newmodule后,我希望能够从系统中的当前用户列表中进行选择,并为其分配一些其他数据。它看起来如下:

  

Add user manually

     

用户[CHOOSE]

     

租车站[text field]

     

车型[textfield]

     

每日价格[list of prices available]

我构建了数据库,添加了文本字段,文本字段以及用于选择用户的按钮,但是如何构建获取用户列表和添加所选用户的功能?

我没有在Moodle中找到这样的例子来使用它。

2 个答案:

答案 0 :(得分:0)

如果您预计系统中会有很多用户,那么请扩展user_selector_base

https://docs.moodle.org/dev/Ajax_user_selector

答案 1 :(得分:0)

根据提供的信息,我认为您正在寻找的是一种过滤用户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);
}