我正在尝试填充两个下拉菜单,其值与其他菜单相关。我总共有3个下拉菜单。一个用于选择一个班级,另外两个用于选择所选班级的科目和考试。 我可以填充一个下拉菜单(比如说:选择主题)。但我怎样才能填充它们。我的代码如下:
var meetingData = new List<MeetingInfo>();
//...populate the list with data
var mockList = new Mock<IMeetingList>();
mockList.As<IQueryable<MeetingInfo>>().Setup(m => m.Provider).Returns(meetingData.Provider);
mockList.As<IQueryable<MeetingInfo>>().Setup(m => m.Expression).Returns(meetingData.Expression);
mockList.As<IQueryable<MeetingInfo>>().Setup(m => m.ElementType).Returns(meetingData.ElementType);
mockList.As<IQueryable<MeetingInfo>>().Setup(m => m.GetEnumerator()).Returns(() => meetingData.GetEnumerator());
这是我的视图功能我的用于填充主题名称的脚本是:
<table>
<tr>
<td> select class</td>
</tr>
<tr>
<td> select subject</td>
</tr>
<tr>
<td> select exam</td>
</tr>
<tr>
<td><select class="form-control m-bot15" name="class_id" value='' onchange="myFunction(this)" style="float:left;" id="carId">
<option value="">select a class</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select></td>
</tr>
<tr>
<td><select class="form-control m-bot15" name="subject_id" value='' style="float:left;" id="emptyDropdown">
<option value="">select a subject</option>
</select></td>
<tr>
</tr>
<td><select class="form-control m-bot15" name="exam_id" value='' style="float:left;" id="emptyDropdown2">
<option value="">select a subject</option>
</select></td>
</tr>
</table>
我的控制器功能newdrp是
<script>
function myFunction(obj)
{
$('#emptyDropdown').empty()
var dropDown = document.getElementById("carId");
var carId = dropDown.options[dropDown.selectedIndex].value;
$.ajax({
type: "POST",
dataType: 'json',
url: "<?php echo base_url();?>mark/newdrp",
data: { 'carId': carId },
success: function(data){
$.each(data, function () {
$('#emptyDropdown').append('<option value='+this.subject_id+'>' + this.name + '</option>');
});
}
});
}
</script>
这很好用。我在下拉列表中获取了主题列表。但我想再传递一个像这样的json对象
public function newdrp(){
$classId = $this->input->post('carId');
$subjects = $this->subject_model->Subjectbyclassid($classId);
echo json_encode($exams);
}
这是我的控制台预览
public function newdrp(){
$classId = $this->input->post('carId');
$subjects = $this->subject_model->Subjectbyclassid($classId);
$exams = $this->exam_model->Exambyclassid($classId);
echo json_encode(array($subjects,$exams));
}
如何在相应的下拉菜单中循环显示考试名称。请帮忙
答案 0 :(得分:1)
你也必须遍历第二个数组,data
是父数组
success: function(data){
var examArr = data[1];
$.each(examArr, function () {
$('#emptyDropdown2').append("<option value='" + $(this).exam_id + "'>" + $(this).name + "</option>");
});
}