codeigniter使用ajax更新数据库记录

时间:2014-08-08 06:39:57

标签: php jquery ajax codeigniter

我需要通过ajax使用表单更新数据库记录,我尝试了几种方法。但我不能用post方法做到这一点。这是我的代码

查看

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

    <h2>Company Details.</h2>        

    <?php
          $this->load->helper('form');
          $attributes = array('method'=>'post','name'=>'update_company','id'=>'update_company');
          echo form_open_multipart('',$attributes);?>
    <?php// echo form_open_multipart('site/update');?>
    <?php $sid=$company_data->id;?>
    <label>cmp_id : </label> <?php echo form_input('sid',$sid);?><br/><br/>
    <label>Code : </label> <?php echo form_input('code',$company_data->code);?><br/>   <br/>
    <label>Name : </label> <?php echo form_input('name',$company_data->name);?><br/>  <br/>
    <label>Logo : </label><input type="file" name="userfile"/><br/><br/>
    <label>URL : </label> <?php echo form_input('url',$company_data->url);?><br/><br/>
    <label>Description : </label> <textarea name="description" rows="4" cols="50"><?php     echo $company_data->description; ?></textarea><br/><br/>
    <input type="submit" value="Update"/>
    </form>

    <script>   //no need to specify the language
       $(document).ready(function() {

       $('#update_company').on("submit",function(e) {

            e.preventDefault();

            $.ajax({
                type: "POST",
                url: "<?php echo site_url('site/update/'); ?>",
                data: $(this).serialize(),
                success: function(data){
                    var site_url = "<?php echo site_url('site/update/'); ?>";
                    var id = "<?php echo $sid; ?>";
                    site_url = site_url +"/" + id;
                    alert(site_url);
                    alert(id);
                        //$("#content").load("http://localhost/FinanceManagementSystem/index.php/site/update/"+id);
                }
           });            
        });
      });
    </script>

根据我需要更新该特定记录的$ sid, 的 contorller

public function update(){

        $this->load->model('company_model');
        $updateName=$this->company_model->update_company();

         return $updateName;   
    }

模型 这里需要使用post in view来访问$ id。

  function update_company(){
        //user details
        $username =  $this->session->userdata('username');
        $query =  $this->db->get_where('userdetails',array('username'=>$username));


    $company_update_data = array(
        'code' => $this->input->post('code'),
                    'name' => $this->input->post('name'),
                    //'logo' => $imgpath['file_name'],
                    'url' => $this->input->post('url'),
                    'description' => $this->input->post('description'),
                    'createdat' => date('Y-m-d H:i:s',strtotime('')),
                    'status' => 0,
                    'userid' => $this->userid
             );
        $id = $this->input->post('id');
        $this->db->where('id', $id);
        $update = $this->db->update('companydetails', $company_update_data); 
        return $id;
}

1 个答案:

答案 0 :(得分:0)

我认为您的问题是您没有索引'id'

$id = $this->input->post('id');

尝试转储您的帖子,看看您是否提供了$ _POST [“id”]