簡體   English   中英

用戶使用codeigniter登錄后無法將配置文件數據更新到數據庫中

[英]Unable to update profile data into database after user login using codeigniter

一旦用戶登錄網站,它將根據配置文件ID獲取登錄用戶的詳細信息。如果我嘗試更新用戶無法更新的詳細信息以及沒有任何問題。

控制器:

function index()
{
    if($this->session->userdata('admin_logged_in'))
    {
        $data['admin_details'] = $this->session->userdata('admin_logged_in');
        $data['country'] = $this->signup_model->getcountry();       
        $data['states'] = $this->profile_model->getstates();
        $data['records']= $this->profile_model->getprofiledata($this->session->userdata('admin_logged_in')['profile_id']);
        $data['mainpage']='profile';
        //echo '<pre>'.print_r($data, true).'</pre>';
        $this->load->view('templates/template',$data);
        $this->load->view('templates/sidebar',$data);
    }
    else
    {           
        $this->load->view('welcome');
    }
}

function updateprofile()
{
    $this->load->library('form_validation');
    $this->form_validation->set_error_delimiters('<br /><span class="error"> ','</span>');
    $this->form_validation->set_rules('first_name','First Name','required');
    $this->form_validation->set_rules('profile_name','Profile Name','required');
    $this->form_validation->set_rules('designation','Designation','required');
    $this->form_validation->set_rules('address_1','Address','required');
    $this->form_validation->set_rules('address_2','Address','required');

    if($this->form_validation->run()== FALSE)   
    {   
    $data['records']= $this->profile_model->getprofiledata($this->session->userdata('admin_logged_in')['profile_id']);      
    $data['mainpage']='profile';
    $this->load->view('templates/template',$data);
    $this->load->view('templates/sidebar',$data);
    }
    else    
        {       
            $result = $this->profile_model->update($this->input->post('profile_id'));       
            if(is_array($result))
            {       
                $data['errors']=$result;
                $data['records']= $this->profile_model->getprofiledata($this->session->userdata('admin_logged_in')['profile_id']);                 
                $data['mainpage']='profile';
                $this->load->view('templates/template',$data);
                $this->load->view('templates/sidebar',$data);
            }                              
                else                    
                $this->flash->success('<h2>Successfully Updated the record.<h2>');                      
                redirect('profile');                    
        }               

}

模型:

function getprofiledata($id)
{
    $this->db->select('profile_details.*,C.country_name,S.state_name,D.city_name');     
    $this->db->from('profile_details');
    $this->db->join('countries AS C','C.country_id=profile_details.country_id','INNER');
    $this->db->join('states AS S','S.state_id=profile_details.state_id','INNER');
    $this->db->join('cities AS D','D.city_id=profile_details.city_id','INNER');
    $this->db->where(array('profile_details.profile_id'=>$id));     
    $q=$this->db->get();        
    if($q->num_rows()>0)
      {
    return $q->result();
        }
    else
    {
    return false;
    }
}

function update($id)
{
    $data=array(
    'first_name' =>$this->input->post('first_name'),
    'profile_name' =>$this->input->post('profile_name'),
    'designation' =>$this->input->post('designation'),
    'address_1' =>$this->input->post('address_1'),
    'address_2' =>$this->input->post('address_2')       
    );
    $this->db->where(array('profile_id'=>$id));
    $this->db->update('profile_details', $data);
    return true;        
}

視圖:

<div class="col-md-3">
</div>
<div class="col-md-9 col-md-offset-2">
<div id="legend">
    <legend class="">Profile Information</legend>
</div>   
<?php if(isset($records) && is_array($records) && count($records)>0): ?>
            <?php foreach($records as $r):?>
    <form action="<?php echo base_url();?>profile/updateprofile" role="form" class="form-horizontal" id="location" method="post" accept-charset="utf-8">
    <?php
        echo form_hidden('profile_id',$r->profile_id);
    ?>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="name">Name:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" nae="first_name" id="first_name" placeholder="Enter name" value="<?php echo $r->first_name;?>" />
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="profilename">Profile Name:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" name="profile_name" id="profile_name" placeholder="Enter Profile name" value="<?php echo $r->profile_name;?>" />
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="designation">Designation:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" name="designation" id="designation" placeholder="Enter Designation" value="<?php echo $r->designation;?>" />
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="address_1">Address 1:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" id="address_1" name="address_1" placeholder="Enter Address Details" value="<?php echo $r->address_1;?>" />
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="address_2">Address 2:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" id="address_2" name="address_2"  placeholder="Enter Address Details" value="<?php echo $r->address_2;?>" />
      </div>
    </div>
     <button type="submit" class="btn">Submit</button>
    </form>
    <?php endforeach;endif;?>
    </div>

一旦用戶登錄網站無法將數據更新到數據庫中。一旦提交表單重定向到同一頁面也沒有任何問題。

親愛的用戶7047368,

您的型號代碼可能存在問題。

function update($id)
{
    $data=array(
    'first_name' =>$this->input->post('first_name'),
    'profile_name' =>$this->input->post('profile_name'),
    'designation' =>$this->input->post('designation'),
    'address_1' =>$this->input->post('address_1'),
    'address_2' =>$this->input->post('address_2'),

    );
    $this->db->where(array('profile_id'=>$id));
    $this->db->update('profile_details', $data);
    return true;        
}

必須(你在$data(array)輸入一個額外的逗號)

function update($id)
{
    $data=array(
    'first_name' =>$this->input->post('first_name'),
    'profile_name' =>$this->input->post('profile_name'),
    'designation' =>$this->input->post('designation'),
    'address_1' =>$this->input->post('address_1'),
    'address_2' =>$this->input->post('address_2')
    );
    $this->db->where(array('profile_id'=>$id));
    $this->db->update('profile_details', $data);
    return true;        
}

如果你不確定你的查詢是真還是假,你可以把這行var_dump($this->db->last_query()); $this->db->update('profile_details', $data);后進入此函數$this->db->update('profile_details', $data); ; 然后將其復制並粘貼到phpmyadmin中的Query Form中。

希望這有幫助。

您認為問題在於此

用這個

<div class="form-group">
  <label class="control-label col-sm-2 " for="name">Name:</label>
  <div class="col-sm-4 col-sm-offset-1">
    <input type="text" class="form-control" name="first_name" id="first_name" placeholder="Enter name" value="<?php echo $r->first_name;?>" />
  </div>
</div>

代替

<div class="form-group">
  <label class="control-label col-sm-2 " for="name">Name:</label>
  <div class="col-sm-4 col-sm-offset-1">
    <input type="text" class="form-control" nae="first_name" id="first_name" placeholder="Enter name" value="<?php echo $r->first_name;?>" />
  </div>
</div>

在您的名字輸入字段'name'屬性有拼寫錯誤。 糾正'nae'到'name'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM