2012-09-06 2 views
1

Codeigniter 프레임 워크를 사용하여 기술을 개발 중입니다. 이미 데이터를보고 데이터를 데이터베이스에 삽입했으며 데이터를 업데이트하는 것이 더 까다 롭습니다. 내가 본 대부분의 자습서는 데이터베이스에서 선택된 ID를 가져오고 양식 필드에 반향시키기보다는 코드에 값을 입력하는 것입니다. 지금까지 내가 가지고 :Codeigniter 데이터베이스 업데이트 : 입력 필드에 데이터를 에코 백하고 제출시 업데이트

news_model :

function editArticle($data) { 
     $data = array(
         'title' => $title, 
         'content' => $content, 
         'author' => $author 
        ); 

     $this->db->where('id', $id); 
     $this->db->update('news', $data, array('id' =>$id)); 

    } 

컨트롤러 :

public function update_entry() { 
     //load the upate model 
     $this->load->model('update_model'); 

     //get the article from the database 
     $data['news'] = $this->news_model->get_article($this->uri->segment(4)); 

     // perform validation on the updated article so no errors or blank fields 
     $this->load->library('form_validation'); 

     $this->form_validation->set_rules('title', 'Title', 'trim|required'); 
     $this->form_validation->set_rules('content', 'Content', 'trim|required'); 
     $this->form_validation->set_rules('author', 'Author', 'trim|required'); 

     // If validation fails, return to the edit screen with error messages 
     if($this->form_validation->run() == FALSE) { 

      $this->index(); 

     }else{ 
      //update the news article in the database 
      if($query = $this->update_model->update()) { 

     }else{ 
      redirect('admin/edit'); 
     } 
    } 
} 

보기 :시에서 (데이터 출력을 반향하는 방법

 <?php echo form_open('admin/edit/edit_article'); ?> 

     <?php echo form_input('title', set_value('title', 'Title')); ?><br /> 
     <?php echo form_textarea('content', set_value('content', 'Content')); ?><br /> 
     <?php echo form_input('author', set_value('author', 'Author')); ?> 
     <?php echo form_submit('submit', 'Edit Article'); ?> 
     <?php if (isset($error)){echo "<p class='error'>$error</div>"; 
     }?> 
     <?php echo validation_errors('<p class="error">');?> 
     <?php echo form_close(); ?> 

1) 임 확실하지 사용자가 표시된 기사보기에서 편집 단추를 클릭하여 해당 ID를 가져온 다음 텍스트 필드의 편집 페이지에 표시합니다. 에스.

2) 그런 다음 사용자가 업데이트 된 데이터를 제출하고 데이터베이스에 게시 하시겠습니까?

내 컨트롤러 /보기 파일의 나머지 부분을 구조화하는 데 도움이되거나 도움이 필요한 경우 하루 이상 지나면 좋습니다.

감사합니다.

답변

0

당신은 당신의 뷰의 모든 코드를 부여하지 않은, 그래서 당신이 권리가 얼마나 당신이 잘못 얼마나 잘 모르겠지만, 내가 볼 수있는 몇 가지 언급거야 -

현재 필드의 내용이 $data$this->load->view('edit', $data); (http://codeigniter.com/user_guide/general/views.html 참조)과 같이 컨트롤러에서보기를 호출하지 않는 것 같습니다.

양식 필드를 미리 채우려면 두 번째 매개 변수 set_value()에 현재 필드 값을 입력하십시오 (예 : set_value('title', $article->title)).

또한 모델은 제출 된 양식 ($this->input->post)을 처리 한 다음 모델에서 업데이트 쿼리를 호출해야합니다.

(I는 CodeIgniter의 워드 프로세서는 이것에 큰 아니라는 것을 말해야한다 - 당신이 ControllersModels (더하기 하나를 Form HelperForm Validation Class 문서에서 찾고뿐만 아니라) 위의 링크 (조회수를 추적 유지되어야한다 2 다른 사람, 나는 경이하지 않아야한다)).

관련 문제