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>');
}
}
});
});