Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 创建一个级联下拉列表,与coeigniter没有主键和外键关系_Codeigniter - Fatal编程技术网

Codeigniter 创建一个级联下拉列表,与coeigniter没有主键和外键关系

Codeigniter 创建一个级联下拉列表,与coeigniter没有主键和外键关系,codeigniter,Codeigniter,这是我的表格任务的结构 项目名称 受雇者 客户名称 任务 依赖项如下 一个项目有多个任务 一个项目有多个员工 我需要创建一个下拉列表,当用户选择一个特定的项目任务相关,他们将自动加载到下一个下拉列表。在这种情况下,我不需要主键和外键关系。任何帮助都将不胜感激 这是我的控制器 public function Task(){ $data['cname'] = $this->welcome4->show_students3(); $data['projects'] = $

这是我的表格任务的结构

项目名称 受雇者 客户名称 任务 依赖项如下

一个项目有多个任务 一个项目有多个员工 我需要创建一个下拉列表,当用户选择一个特定的项目任务相关,他们将自动加载到下一个下拉列表。在这种情况下,我不需要主键和外键关系。任何帮助都将不胜感激 这是我的控制器

 public function Task(){
    $data['cname'] = $this->welcome4->show_students3();
    $data['projects'] = $this->welcome4->show_students(); 
    $data['employee'] = $this->welcome4->show_students2(); 
    $this->load->view('template/navigation');
    $this->load->view('template/sideNav');
    $this->load->view('template/header');
    $this->load->view('Task',$data);
    $this->load->view('template/footer');

    } 
这是我的模型

function show_students2(){
        $query = $this->db->get('employee');
        $query_result = $query->result();
        return $query_result;
    }
    function show_students3(){
        $query = $this->db->get('clientdetails');
        $query_result = $query->result();
        return $query_result;
    }
    function show_students4(){
        $query = $this->db->get('task');
        $query_result = $query->result();
        return $query_result;
    }
这是我的看法

<div class="form-group">
                             <label>Select Project</label>
                        </div>     


                    <div class="form-group">
                        <select name="projectname" class="input form-control">
                        <option value="none" selected="selected">Select Project</option>


                        <?php foreach($projects as $s):?> 
                        <option value="<?php echo $s->projectname?>"><?php echo $s->projectname?></option>
                        <?php endforeach;?>  
                        </select>
                    </div>

                    <div class="form-group">
                             <label>Select Client</label>



                        <select name="cname" class="input form-control">
                        <option value="none" selected="selected">Select client</option>


                        <?php foreach($cname as $s):?> 
                        <option value="<?php echo $s->cname?>"><?php echo $s->cname?></option>
                        <?php endforeach;?>  
                        </select>
                    </div>

                    <div class="form-group">
                             <label>Select Employee</label>
                        </div> 

                    <div class="form-group">
                        <select name="employee" class="input form-control">
                        <option value="none" selected="selected">Select Employee</option>


                        <?php foreach($employee as $s):?> 
                        <option value="<?php echo $s->employee?>"><?php echo $s->employee?></option>
                        <?php endforeach;?>  
                        </select>
                    </div>

这将加载数据库中的所有项目、客户机和员工。但现在我希望,当在第一个下拉列表中选择项目时,第二个下拉列表应该只显示与之相关的客户机和员工。不是所有的

让我们考虑这将是你的项目选择框,在其中你用PHP动态加载页面加载数据。

<select name="projectname" id="projectname"></select>
内部模型请添加此功能。它将从数据库中获取数据 ans将其传递回控制器

最后在您查看的文件中请添加以下函数


让我们考虑这将是你的项目选择框,在其中你用PHP动态加载页面加载数据。

<select name="projectname" id="projectname"></select>
内部模型请添加此功能。它将从数据库中获取数据 ans将其传递回控制器

最后在您查看的文件中请添加以下函数


Shyam先生,这段代码不需要一个控制器和一个模型吗?当然你需要这个,如果你想让我描述你的控制器和模型,请分享你的两个表。根据你的代码,让我给你一个例子,剩下的你可以写代码。请检查我的更新答案等待,我会检查让我们。Shyam先生,这段代码不需要控制器和模型吗?当然,如果你想让我描述你的控制器和模型,请分享你的两个表。根据你的代码,让我给你一个例子,对于其余的你可以编写代码。请核对我的最新答案等一下,我会核对的。
public function getTasks() {
    $Id = $this->input->post('project_id');
    if ($Id):
        $this->load->model('Task_model', 'Tasks', TRUE);
        $data = $this->Tasks->getProjectTasks($Id);
        if ($data):
            $result['status'] = true;
            $result['records'] = $data;
        endif;
    else:
        $result['status'] = false;
    endif;
    echo json_encode($fdata);
}
public function getProjectTasks($id = null) {
    if ($id):
        $this->db->select('id,task');
        $this->db->where('project_id', $id);
        $this->db->where('status', TRUE);
        $query = $this->db->get('tasks');
        $records = $query->result();
        if ($records):
            return $records;
        else:
            return false;
        endif;
    else:
        return false;
    endif;
}
$(document).on('#projectname', 'change', function() {
    var projectId = $(this).val();
    $.ajax({
        type: 'POST',
        url: 'URL',
        data: {project_id: projectId},
        dataType: "json",
        beforeSend: function() {
            $('#tasks')
                    .empty()
                    .append('<option selected="selected">Select Task</option>');
        },
        success: function(data) {
            if (data.status) {
                $.each(data.records, function(i, item) {
                    $('#tasks').append($('<option>', {
                        value: item.value,
                        text: item.text
                    }
                    ));
                });
            } else {
                $('#tasks')
                        .empty()
                        .append('<option selected="selected">No Task available</option>');
            }
        }
    });
});