使用一个php函数返回多个json对象

时间:2017-04-15 06:15:10

标签: javascript php jquery json

我正在尝试填充两个下拉菜单,其值与其他菜单相关。我总共有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));
  }

如何在相应的下拉菜单中循环显示考试名称。请帮忙

1 个答案:

答案 0 :(得分:1)

你也必须遍历第二个数组,data是父数组

success: function(data){
  var examArr = data[1];
  $.each(examArr, function () {
    $('#emptyDropdown2').append("<option value='" + $(this).exam_id + "'>" + $(this).name + "</option>");
  });
 }