2013-02-24 3 views
0

그래서 직원 코드를 가져 오는 텍스트 필드가 n 개의 뷰 파일에 있고 jquery는 동일한보기 페이지의 일부 필드를 즉시 채우기 위해 직원의 세부 정보를 컨트롤러에서 호출합니다. 그러나 나는 재고가 있으며 실제로 어떤 일이 일어나고 있는지, 제 코드를보고 도움을줍니다. 감사합니다.아약스 jquery가 선택 쿼리 결과를 반환하지 않습니다.

JQuery와 :

$('#employee_code').change(function(){ 
    var em_code = $('#employee_code').val(); 
    if (em_code != ""){ 
     var post_url = "<?php echo base_url();?>index.php/it_inventory/get_employee_details/" + em_code; 
     $.ajax({ 
      type: "POST", 
      url: post_url, 
      success: function(name,position,department) 
      { 
       $('#employee_name').val(name); 
       $('#employee_position').val(position); 
       $('#employee_department').val(department); 
      } 
     }); 
    }   
}); 

CI 컨트롤러 :

function get_employee_details($em_code="") { 
     header('Content-Type: application/x-json; charset=utf-8'); 
     echo(json_encode($this->it_inventory_model->get_employee_details($em_code))); 
    } 

CI 모델

function get_employee_details($em_code){ 
     $q = "select name,position,department from employees where code=?"; 
     $query_em_detail=$this->db->query($q,$em_code); 

     $outputs = array(); 

     if($query_em_detail->result()){ 
      foreach ($query_em_detail->result() as $output) { 
       $outputs['name'] = $output->name; 
       $outputs['position'] = $output->position; 
       $outputs['department'] = $output->department_code; 
      } 
      return $outputs; 
     } else { 
      return FALSE; 
     } 
    } 
+0

나는 직원 코드를 통해 통과 할 때 url "http : //localhost/it_inventory/index.php/it_inventory/get_employee_details/11330", 텍스트 형식 파일로 다운로드하기 시작한 올바른 데이터를 출력합니다. – goseo

답변

1

당신처럼, 당신의 아약스 요청에 dataType을 추가해야합니다 :

$.ajax({ 
    type: "POST", 
    url: post_url, 
    dataType: "json", 
    success: function(data) { 
     console.log(data); //response from your controller 
     console.log(data.name); //to get name 
    }, 
    error: function() { alert("Something went wrong!"); } 
}); 

및 컨트롤러 :

function get_employee_details($em_code="") { 
    header('Content-Type: application/json',true); 
    echo(json_encode($this->it_inventory_model->get_employee_details($em_code))); 
} 
+0

내가 원하는 것에 아무런 영향을 미치지 않는 것 같습니다. 스다이르! – goseo

+0

아약스 요청에 대해 콘솔에서 무엇을 볼 수 있습니까? 당신은 적절한 데이터 또는 오류를 볼 수 있습니까 ..? –

+0

미안하지만 콘솔에 반환 된 것이 있는지 어떻게 알 수 있습니까? 하지만 내가 말했듯이, 컨트롤러 코드의 함수에 직원 코드를 전달할 때 올바른 데이터를 반환한다고하자. – goseo

0

나는 success: function(name,position,department)success: function(result) 있어야한다고 생각합니다. 그럼 당신은 사용할 필요가 result.name, result.position

success: function(result) { 
    $('#employee_name').val(result.name); 
    $('#employee_position').val(result.position); 
    $('#employee_department').val(result.department); 
} 
관련 문제