2012-11-25 6 views
0

저는 CI에 처음으로 익숙해졌으며 오늘 업데이트 양식 클래스를 만들려고 노력했지만 막 다른 골목에 처하고 있습니다. 폼을 만들고 데이터베이스에 데이터를 게시하도록 함수를 설정 했으므로 이제이를 업데이트 할 수 있어야합니다.Codeigniter 업데이트 양식

내 편집 양식 기능은 다음과 같습니다 :

public function edit_event() 
{ 

    $vars = array(); 

    $data['form_url'] = $this->form_url; 

    if ($form_id = $this->EE->input->get('form_id')) 
    { 
     $data['form_id'] = $form_id; 
    } 

    return $this->EE->load->view('edit_event', $data, TRUE); 
} 

와 함수 내에서로드 edit_event 파일은 다음과 같습니다

public function update_form() 

{ 

    $form_id = $this->EE->input->get('form_id'); 

    $data['form_id'] = $form_id; 

    $form_data = array(
     'app_key'  => $this->EE->input->post('app_key'), 
     'access_token' => $this->EE->input->post('access_token'), 
     'user_key'  => $this->EE->input->post('user_key') 
    ); 


    $this->EE->db->where('id', $form_id);  
    $this->EE->db->update('exp_events', $form_data); 


    $this->EE->functions->redirect($this->base_url); 

} 

:

<?php 

    $this->EE=& get_instance(); 

    $this->load->helper('form'); 

     $attributes = array('class' => 'event_form', 'id' => 'my_event_form'); 

    echo form_open($form_url.AMP.'method=update_form', $attributes); 

     $this->EE->load->library('table'); 
     $this->EE->table->set_heading(
      'Preference', 
      'Setting' 
     ); 



     $query = $this->EE->db->query("SELECT * FROM exp_events WHERE id = '$form_id'"); 

     foreach($query->result_array() as $row) 
      { 

       $this->EE->table->add_row(
        form_label('Application Key', 'app_key'), 
        form_input('app_key',$row['app_key']) 
       ); 

       $this->EE->table->add_row(
        form_label('Access Token', 'access_token'), 
        form_input('access_token',$row['access_token']) 
       ); 

       $this->EE->table->add_row(
        form_label('User Key', 'user_key'), 
        form_input('user_key',$row['user_key']) 
       ); 

      } 

     echo $this->EE->table->generate(); 


     echo form_reset('reset', 'Clear Form'); 
     echo form_submit('mysubmit', 'Submit Post!'); 


    echo form_close(); 

?> 

나는 다음 내 업데이트 형태로 기능이 $ form_if 옵션을 제거하면 데이터를 업데이트 할 수 있지만 d의 모든 단일 항목에 대해 업데이트됩니다. atabase. 편집중인 양식의 양식 ID 만 사용하여 데이터를 업데이트하면됩니다.

업데이트 양식을 제출할 때 올바른 $ base_url로 리디렉션되지만 데이터가 업데이트되지 않으므로 양식 ID를 정의 할 때 분명히 잘못된 작업을하고 있습니까?

내가 말했듯이 누군가가 선호하는 방법을 알면 나에게 알려주기 위해 자유롭게 느낀다.

감사합니다.

미리 감사드립니다.

답변

0

당신은 form_id으로, 양식의 '숨겨진'필드를 포함해야합니다. 현재 'form_id'는 입력 내용이 아니므로 form_id로 이동하면 실패합니다. 응답에 대한

변화

echo $this->EE->table->generate(); 
    echo form_reset('reset', 'Clear Form'); 
    echo form_submit('mysubmit', 'Submit Post!'); 

echo $this->EE->table->generate(); 
    echo form_hidden('form_id', $form_id); 
    echo form_reset('reset', 'Clear Form'); 
    echo form_submit('mysubmit', 'Submit Post!'); 
+0

감사합니다. 그 말이 맞는 !! 숨겨진 필드를 추가했지만 양식을 제출할 때 필드가 업데이트되지 않습니다. $ form_id = $ this-> EE-> input-> get ('form_id'); $ data [ 'form_id'] = $ form_id; update_form 함수에서 모든 양식에 대한 데이터가 한 번에 업데이트됩니다. 그래서 어딘가에서 EE-> db-> 업데이트로 잘못 될 것입니다. – Ben

+0

POST를 볼 때 GET을보고 있습니다. '$ form_id = $ this-> EE-> input-> post ('form_id');'. –

+0

AHA! 고 카트, 고마워. 데릭! TheShiftExchange 귀하의 의견도 많이 도움이 너무 감사합니다 :) – Ben