2017-01-18 1 views
0

해결할 수없는 문제가 있습니다. 내 목표는 의 모든 회원에게 목록에 선택된 그룹을 표시하는 것입니다. 지금까지 콘솔에서 선택된 그룹을 볼 수는 있지만 컨트롤러로 전달하는 방법을 알지 못합니다. 바라기를 누군가는 나의 문제를 이해한다. 내 코드는 아래와 같습니다.컨트롤러에 코드를 전달하는 Jquery

Members_view.php

<select id="group_id"> 

<?php foreach($groups->result() as $row){?> 

<option value="<?php echo $row->group; ?>" ><?php echo $row->group; ?></option> 
    <?php } ?> 
</select> 

<ul> 
<?php foreach($members->result() as $row){?> 
<li><?php echo $row->firstname." ".$row->lastname; ?></li> 
<?php } ?> 
</ul> 

Jquery.js

$('#group_id').change(function(e) { 
    e.preventDefault(); 
    var base = '<?=base_url()?>'; 
    var grp = $(this).val(); 
    $.ajax({ 
     type: "POST", 
     url: base + "members/members", 
     data: { "group_id": grp }, 
     dataType: "html", 
     cache: false, 
     success: function() { 
      console.log(grp); 
     } 
    }); 
}); 

Members.php

function members(){ 
    $group_id = $this->input->post('group_id',true); 

    $data['groups'] = $this->mdl_members->_all_groups(); 
    $data['members'] = $this->mdl_members->_members($group_id); 
    $this->load->view('members_view',$data); 
} 

Mdl_members.php

function _all_groups(){ 
    $sql = $this->db->query("select * from groups"); 
    return $sql; 
} 

function _members($id){ 
$sql = $this->db->query("select * from members WHERE group_id = '$id'"); 
return $sql; 
} 
,536,

감사합니다.

답변

0

Mdl_members.php : 모델에서 데이터를 반환합니다. 선호하는 모델은 arrays입니다.

function _all_groups(){ 
    $sql = $this->db->query("select * from groups"); 
    return $sql->result_array(); 
} 

function _members($id){ 
$sql = $this->db->query("select * from members WHERE group_id = '$id'"); 
return $sql->result_array(); 
} 

Members.php : 새로운 members_view() 방법을 살펴. 그는 _all_groups() 데이터로 viewselect에 전화하고 있습니다.

function members_view(){ 
     $data['groups'] = $this->_all_groups(); 
     $this->load->view('members_view',$data); 
    } 

function members(){ 
    $group_id = $this->input->post('group_id',true); 
    $members = $this->_members($group_id); 
    echo json_encode($members); 
} 

Jquery.js 다음 success: function(resp) 단지 몇 줄은 members()에서 json 반응을 얻고 <ul id="resp">에 넣어합니다.

<script> 
$(function() { 
    $('#group_id').change(function(e) { 
     e.preventDefault(); 
     var base = '<?=base_url()?>'; 
     var grp = $(this).val(); 
     $.ajax({ 
      type: "POST", 
      url: base+"members/members", 
      data: {"group_id": grp}, 
      dataType: "JSON", 
      cache: false, 
      success: function(resp) { 
       var li = ""; 
       $.each(resp, function (i, v) { 
        li+="<li>"+v+"</li>"; 
       }); 
       console.log(li); 
       $('#resp').html(li); 
      } 
     }); 
    }); 
}); 
</script> 

Members_view.php : <ul id="resp"> 응답 데이터를 표시하도록 만들었다.

<select id="group_id"> 
    <?php foreach($groups as $row){?> 
     <option value="<?=$row['group'];?>"> 
      <?=$row['group'];?> 
     </option> 
    <?php } ?> 
</select> 
<ul id="resp">Will be shown here!</ul> 
+0

아직 작동하지 않습니다. 컨트롤러가 데이터를받지 못하는 것 같습니다. 나는 json과 다른 것을 시도했지만 여전히 작동하지 않았다. 그래서 나는 왜 데이터가 들어 가지 않는지 알아 내야 만한다. – EyemansDome

+0

'console.log' 응답을 볼 수 있다면,'controller'는 정상적으로 데이터를 얻고있다. 'console.log'가 정의되지 않은 경우'$ .each (resp, function (i, v) {li + = "

  • "+ v + "
  • ";}로 전달되는 응답 형식에주의를 기울일 필요가 있습니다. ;'. '컨트롤러'가 데이터를 얻지 못한다는 유일한 신호는 응답 부재입니다. '$ ('resp') .html (resp);'를 사용하여'controller'; – ShutUpMagda

    관련 문제