Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用codeigniter和php填充选择菜单_Php_Codeigniter_Select_Menu_Populate - Fatal编程技术网

使用codeigniter和php填充选择菜单

使用codeigniter和php填充选择菜单,php,codeigniter,select,menu,populate,Php,Codeigniter,Select,Menu,Populate,您好,我是codeigniter框架的初学者,我有一个问题 有一个表需要填充各种各样的数据,其中一项是带有选项的选择菜单,当我试图填充选择菜单时,我被卡住了,现在我有一个问题 当我调用控制器的方法my_courses()时: 示范课: function professors_classes($username){ $this->db->where("username", $username); $query = $this->db->get("tabl

您好,我是codeigniter框架的初学者,我有一个问题

有一个表需要填充各种各样的数据,其中一项是带有选项的选择菜单,当我试图填充选择菜单时,我被卡住了,现在我有一个问题

当我调用控制器的方法my_courses()时:

示范课:

function professors_classes($username){
    $this->db->where("username", $username); 

    $query = $this->db->get("table_teach_a_course");  
    //if we have results then we will return them 
    if($query->result()){
        return $query->result();
    }
    //else we return false
    else{
        return false;
    }           
}
这是我的剥离测试页面,在select和in选项中没有名称和值,在这里一切正常。在这里,我设法捕捉结果并展示它们:

    <?php if(isset($records)) { ?>

        <select>

    <?php foreach ($records as $row){ ?>
        <option value=""> <?php echo $row->sifra_predmeta; ?> </option>
    <?php } ?>

        </select>

    <?php } ?>
我认为这应该将数据发送到我的视图:professor_view_insert_labwork,但我无法获取该视图上的数据。我只是不知道怎么做,为什么

这是我的精简但“重要”的视图,在选择和输入选项中同样没有名称和值,professor_视图\u insert_labwork视图:

<?php
echo form_open("controller_professor/insert_labwork"); 
?>
        <table border="1">

            <tr> 
                <td>course name</td> <td>button</td> <td></td>  
            </tr> 

            <tr>
                <td>                        
                    <?php if(isset($records)) { ?>
                        <select>
                            <?php foreach ($records as $row){ ?>
                                <option value=""> <?php echo $row->sifra_predmeta; ?> </option>
                            <?php } ?>
                        </select>
                     <?php
                    }else { 
                        echo"<h2>No records were returned!</h2>";
                    } ?> 
                </td> 


                <td> 
                    <input type="submit" class="" value="Save" /> 
                </td> 
            </tr>
        </table>
<?php 
echo form_close(); 
?>

课程名称按钮
但它不断地在else循环中弹出,并回显消息“未返回任何记录!”

我不知道为什么在这个视图中——professor_view_insert_labwork,我无法获取数据$记录,但在test view中,我设法提取数据

请帮助我,因为我真的不知道代码中的错误是什么

function professors_classes($username)
{
    $this->db->where("username", $username);

    $query = $this->db->get("table_teach_a_course");
    //if we have results then we will return them
    $result = $query->result_array();  //here
    if(!empty($result))
    {            
        return $result; //here

    }
    //else we return false
    else{
        return false;
    }
}
和控制器

<?

    function my_courses(){

        $username = $this->session->userdata('username'); //1 username from session

        $this->load->model('model_professor'); //2 we load a model,whose task is to load professors courses from table

        $result =$this->model_professor->professors_classes($username); //3 so we send username to that model

        if($result == false)
        {
            echo "Professor has no courses ";
        }
        else
        {
            $data['records'] = $this->model_professor->professors_classes($username);
            $this->load->view('professor/test',$data);//make sure your page is correct
        }
    }

?>

鉴于

<?php if(!empty($records))
{
    ?>
    <select>

        <?php
            foreach ($records as $row)
            {
                ?>
                <option value=""> <?php echo $row['sifra_predmeta'] ?> </option>
            <?php
            }
        ?>

    </select>

<?php
}
?>

更改型号

function professors_classes($username)
{
    $this->db->where("username", $username);

    $query = $this->db->get("table_teach_a_course");
    //if we have results then we will return them
    $result = $query->result_array();  //here
    if(!empty($result))
    {            
        return $result; //here

    }
    //else we return false
    else{
        return false;
    }
}
和控制器

<?

    function my_courses(){

        $username = $this->session->userdata('username'); //1 username from session

        $this->load->model('model_professor'); //2 we load a model,whose task is to load professors courses from table

        $result =$this->model_professor->professors_classes($username); //3 so we send username to that model

        if($result == false)
        {
            echo "Professor has no courses ";
        }
        else
        {
            $data['records'] = $this->model_professor->professors_classes($username);
            $this->load->view('professor/test',$data);//make sure your page is correct
        }
    }

?>

鉴于

<?php if(!empty($records))
{
    ?>
    <select>

        <?php
            foreach ($records as $row)
            {
                ?>
                <option value=""> <?php echo $row['sifra_predmeta'] ?> </option>
            <?php
            }
        ?>

    </select>

<?php
}
?>

在您的型号中替换

if($query->result()){
    return $query->result();
}

在您的模型中替换

if($query->result()){
    return $query->result();
}


我现在尝试了,但仍然是同一个问题。它在测试页上工作相同,但在我的professor视图上再次转到else Loop我现在尝试了,但仍然是同一个问题。它在测试页上工作相同,但在我的professor视图上再次转到else loopnow在该行的模型中抛出一个错误:$result=$query>result_array();但我还是不明白。总的来说,我很好地填充了下拉菜单,现在我试着在professor_view_insert_labwork页面中复制我的测试页面,当我这样做时,他再次进入else循环,这是我不理解的部分。我只需将我的测试页面复制粘贴到professor_view_insert_labwork页面,并在控件中更改:$this->load->view('professor/professor_view_insert_labwork',$data);还是什么都没有!这里没有空格
$result=$query>result\u数组()我在这里发布代码时犯了一个错误,代码中没有空格现在在模型中为这一行抛出一个错误:$result=$query>result_array();但我还是不明白。总的来说,我很好地填充了下拉菜单,现在我试着在professor_view_insert_labwork页面中复制我的测试页面,当我这样做时,他再次进入else循环,这是我不理解的部分。我只需将我的测试页面复制粘贴到professor_view_insert_labwork页面,并在控件中更改:$this->load->view('professor/professor_view_insert_labwork',$data);还是什么都没有!这里没有空格
$result=$query>result\u数组()我在这里发布代码时出错,代码中没有空格