2011-09-07 3 views
4

데이터베이스에서 드롭 다운 목록을 채우려고합니다. 내보기 파일에서 다음 코드form_dropdown()을 얻는 방법 Codeigniter에서 선택한 값을 표시 하시겠습니까?

$batch= $query ['batch']; // I pull this data from a separate model 
echo form_dropdown('shirts', $options, $batch); 

이제 드롭 다운 목록을 채우는 데이터의 벌금을 가지고 있지만, 문제는 그 값을하지 않는 것입니다 - "$ 배치"가 자동으로 페이지가로드 될 때를 선택합니다. 흥미롭게도, 내가 $ batch를 echo한다면, 페이지의 다른 곳에서 그것은 정확한 데이터를 보여 주며, 이는 $ batch가 괜찮음을 의미합니다.

은 여기 내 컨트롤러

여기
function update($id){ 
$this->load->model('mod_studentprofile'); 
      $data['query']= $this->mod_studentprofile->student_get($id); 
      $data['options']= $this->mod_studentprofile->batchget(); 

      $data['tab'] = "Update Student Information"; 
       $data['main_content']='update_studentprofile'; 
       $this->load->view('includes/template',$data); 
      }  

그리고 당신은 친절이 문제를 해결하는 데 도움시겠습니까 내 모델

function batchget() { 

     $this->db->select('batchname'); 
     $records=$this->db->get('batch'); 

      $data=array(); 

         foreach ($records->result() as $row) 
       { 
        $data[$row->batchname] = $row->batchname; 
       } 

      return ($data); 
     } 

입니다. 페이지를로드 할 때 드롭 다운 목록에서 "$ 배치"라는 값을 자동으로 선택하고 싶습니다.

미리 감사드립니다.

편집 ... student_get 내 모델 ($ 아이디)

function student_get($id) 
    { 
     $query=$this->db->get_where('student',array('studentid'=>$id)); 
     return $query->row_array(); 
    }  

감사합니다 :)

+0

@ Chris Schmitz. 답장을 보내 주셔서 감사합니다. 뷰에 렌더링 된 HTML은 select- $ batch = $ query [ 'batch']; echo form_dropdown ('shirts', $ options, $ batch); –

답변

5

내가 뭘 아마 일어나는 것은 $ 배치의 값이에서 렌더링 무엇을 일치 될 수 있다고 생각 html의 value = ""부분에 해당하는 특정 옵션에 대한 $ options의 실제 키는 제외합니다. 예를 들어

... 영업 이익의 코멘트에 응답

// this wouldn't select 'foo' as you may be thinking 
$options => array('0' => 'foo', '1' => 'bar'); 
$batch = 'foo'; 
echo form_dropdown('shirts', $options, $batch); 

// this would select foo 
$options => array('foo' => 'foo', 'bar' => 'bar'); 
$batch = 'foo'; 
echo form_dropdown('shirts', $options, $batch); 

편집 :

batchget() 메소드가 보이는

적절한 형식으로 $ 옵션 배열과 student_get() 메소드를 반환 row_array를 반환하고 있습니다. 이 뷰에서 student_get 메소드에 의해 반환 된 키 중 하나의 값을 $ batch에 저장된 선택된 값으로 할당 한 다음 form_dropdown()에 세 번째 인수로 전달됩니다.

모두 올바른 것으로 보입니다. $ batch의 값이 실제로 $ options에있는 배열 키 중 하나라면 form_dropdown()은 드롭 다운 옵션 중 하나를 선택한 것으로 설정합니다.

+0

답장을 보내 주셔서 감사합니다. 당신 말이 맞지만 어쩌면 내가 이미 내 모델에서 이것을 가지고 있다는 것을 눈치 채지 못할 것입니다. $ data [$ row-> batchname] = $ row-> batchname; 나는 너의 지시에 따라 생각한다. 친절하게 제 모델을 확인하십시오. 괜찮 으면. 다시 한번 감사드립니다. –

1

디버깅 내용.

var_dump()$options, var_dump() $batch, 두 개를보고 잘못된 부분을 확인하십시오.

세 번째 옵션은 레이블 값이 아닌 키 값이어야합니다.

앤서니 잭이 맞을 것입니다.