2013-02-22 149 views
2

我有一個表單,工作正常,但是當我提交表單時,只有刷新瀏覽器後字段纔會更新。如何在不刷新瀏覽器的情況下自動保存字段值。Codeigniter如何提交後保留價值

這裏是我的代碼:

控制器

<?php 

function input($account_id = '', $platform = '') 
{ 

    if ($account_id > '') { 
     $query = $this->db->get_where('db_accounts', array('account_id' => $account_id)); 
     if (isset($query)) 
      if ($query->num_rows() > '') { 
       $row = $query->row_array(); 
      } 
     //declare variables 
     $data['name'] = ''; 
     $data['account_id'] = ''; 
     $data['platform'] = ''; 
     $data['status'] = ''; 
     $data['location_city'] = ''; 
     $data['location_country'] = ''; 
     $data['region'] = ''; 
     $data['type'] = ''; 

     //pass field data 
     $data['fname']['value'] = $row['name']; 
     $data['faccount_id']['value'] = $row['account_id']; 
     $data['fplatform']['value'] = $row['platform']; 
     $data['fstatus']['value'] = $row['status']; 
     $data['flocation_city']['value'] = $row['location_city']; 
     $data['flocation_country']['value'] = $row['location_country']; 
     $data['fregion']['value'] = $row['region']; 
     $data['ftype']['value'] = $row['type']; 
    } 

    if (isset($account_id)) { 
     if ($this->input->post('submit')) { 
      if ($this->input->post('account_id')) { 
       $this->dashboard_model->entry_update(); 

       $data['message'] = '- update complete...'; 
      } else { 
       $data['message'] = 'There was an error, update not complete.'; 
      } 
     } 
     //echo $name; 
     $data['account'] = $this->dashboard_model->get_account($account_id, $platform); 
     $this->load->view('manage/input', $data); 
    } 
} 
?> 

查看

<?php 
$hidden = array(
    'account_id' => $faccount_id['value'], 
    'platform' => $fplatform['value'] 
); 
//form for Edit 
echo '<form method="post" accept-charset="utf-8">'; 
echo form_hidden($hidden); 
?> 
<a href="/platform/<?php echo $fplatform['value'] . '/account/' . $faccount_id['value']; ?>">Return to Account</a> 

<?php 
//Platform 
echo '<br><br><span font-weight:bold"><font color="#C40909">' . $fplatform['value'] . '</font>'; 
if (isset($message)) { 
    echo '<font color=#C40909> ' . $message . '</font></span>'; 
}; 
//Header Name 
echo '<h1 class="header"><span class="title">' . $fname['value'] . '</span></h1><br>'; 
//Form Name 
echo '<b> Name</b>' . form_input('name', set_value('name', $fname['value'])); 
//Form Platform 
echo '<b> Platform</b>' . form_input('platform', $fplatform['value']); 

//Form Dropdown Status 
$status_options = $this->lang->line('status'); 
echo form_label('<b> Status</b>', 'status'); 
echo form_dropdown('status', $status_options, $fstatus, 'style=width:313px'); 

//Form Location City 
echo '<b> Location: City</b>' . form_input('location_city', set_value('location_city', $flocation_city['value'])); 

//Form Location Country 
echo '<b> Location: Country</b>' . form_input('location_country', set_value('location_country', $flocation_country['value'])); 

//Form Region 
$region_options = $this->lang->line('region'); 
echo form_label('<b> Region</b>', 'region'); 
echo form_dropdown('region', $region_options, $fregion, 'style=width:313px'); 
$data = array('name' => 'submit', 'value' => 'Update Account', 'style' => 'width:313px'); 
echo form_submit($data); 
echo form_close(); 
?> 

回答

4

使用CodeIgniter的表單驗證set_value

它一定會幫助你。

+0

我在想什麼,非常完美。謝謝 – Gee 2013-02-22 14:25:53

0

增加這裏的form_validation:

if(isset($account_id)){ 
    $this->form_validation->set_rules('account_id', 'AAccount ID', 'trim|required'); 
    $this->form_validation->set_rules('name', 'Name', 'trim|required'); 
    if($this->form_validation->run()){ 
if($this->input->post('submit')){ 
//if($this->input->post('account_id')){ 
$this->dashboard_model->entry_update(); 

$data['message'] = '- update complete...'; 
     }else{ 
     $data['message'] = 'There was an error, update not complete.'; 
     } 
} 
//echo $name; 
    $data['account'] = $this->dashboard_model->get_account($account_id,$platform); 
    $this->load->view('manage/input',$data);  
} 

} 

參考這裏:在我的形式

//Form Name 
echo form_error('name'); 
echo '<b> Name</b>'.form_input('name', set_value('name', $fname['value']));