首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >值未在下拉列表中第一次显示在moodle中。

值未在下拉列表中第一次显示在moodle中。
EN

Stack Overflow用户
提问于 2014-10-01 05:22:52
回答 1查看 438关注 0票数 0

我正面临着一个问题。我必须增加价值才能在情绪化中删除列表。我创建了一个函数,从数据库中获取结果并显示在下拉框中。当我在情绪化中添加新的课程时,第一次下拉列表似乎是空的。当我再次进入同一课程的活动时,它就显示了价值。但它并不能在第一次尝试中显示出价值。我正在使用这个函数

代码语言:javascript
复制
function getActivities($cid)
 {
        global $DB;
        global $CFG;

    $res=array();
    $sql="SELECT m.id as id, m.name as name
    FROM {$CFG->prefix}course_modules as cm,{$CFG->prefix}modules as m,{$CFG->prefix}course as c,{$CFG->prefix}activitysetmodule as asm
    WHERE asm.course = cm.course
    AND asm.course = c.id
    AND cm.module = m.id
    AND cm.course =$cid";
    $rec2=array();
    $rec1=array();
    $result=$DB->get_records_sql($sql);
    foreach($result as $rec)
    {
        $rec2[]=$rec->name;
    }
    foreach($result as $rec)
    {
        $rec1[]=$rec->id;
    }
$c = array_combine($rec1,$rec2);

return $c;

请帮我找一下。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-01 05:57:42

这是因为当课程第一次创建时,不会有任何模块,$cid将为空白。

另外,对于Moodle 2,您应该使用{tablename}语法而不是{$CFG->前缀}

此外,还有一个函数作为菜单检索数据:

代码语言:javascript
复制
function getActivities($cid) {
    global $DB;

    if (empty($cid)) {
        // New course.
        return array();
    }

    $sql = "SELECT m.id, m.name
            FROM {modules} m
            JOIN {course_modules} cm ON cm.module = m.id AND cm.course = :courseid";

    $result = $DB->get_records_sql_menu($sql, array('courseid' => $cid));

    return $result;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26134613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档