douliangli6407 2014-10-01 05:22
浏览 18
已采纳

moodle第一次没有在下拉列表中显示值

I am facing a problem. I have to add value to drop down list in moodle. I have created a function which fetch result from database and show in drop down box. When i add new course in moodle then first time drop down list seems empty. when i enter activity in same course again, it show value. But it doesn't show values at first attempt. I am using this function

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;

Please help me to sought it out.

  • 写回答

1条回答 默认 最新

  • duanluwei9374 2014-10-01 05:57
    关注

    Its because there won't be any modules for the course when it's first created, $cid will be blank.

    Also for Moodle 2, you should use the {tablename} syntax rather than {$CFG->prefix}

    Also there is a function that retrieves data as a menu for you :

    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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 正弦信号发生器串并联电路电阻无法保持同步怎么办
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)