更新产品详细信息不工作CodeIgniter

时间:2017-10-26 10:45:58

标签: php codeigniter codeigniter-3

我在CodeIgniter框架上做了一些功能,因此用户可以编辑/更新产品详细信息。但是当我提交表单时,我得到一个空白页面,产品没有在我的数据库中更新。我自己也找不到错误。

这是我的观看文件表格(cadeaubewerken.php):

  <table class="aanbieding-cadeau">

    <form action="<?php echo base_url() . "KdGwController/update_product"; ?>" method="post">
    <tr>
        <h4>Cadeau naam</h4>
        <td><?php echo form_input(array('id'=>'product_naam', 'name'=>'product_naam', 'value' => $product["product_naam"] , 'size'=>25));?></td>
        <td><?php echo form_input(array('type'=>'hidden','id'=>'product_id', 'name'=>'product_id', 'value' => $product['product_id']));?>
    </tr>


    <tr>
        <td><?php echo form_open_multipart('Product/upload'); ?> </td>
    </tr>

    <tr>
        <td>
            <h4>Kies een categorie</h4>
            <select name="category_id">
            <?php foreach (get_categories_h() as $category) :
            if ($category->id ==  $product["category_id"]){
            echo '<option value="'.$category->id .'" selected>' . $category->name . '</option>';
            }else{
            echo '<option value="'.$category->id .'">'.$category->name . '</option>';
            }
            endforeach; ?>
            </select>
        </td>
    </tr> 

    <tr>
        <td><h4>Ophaal plaats</h4><?php echo form_input(array('id'=>'ophaal_plaats', 'name'=>'ophaal_plaats', 'value' => $product["ophaal_plaats"], 'size'=>25));?></td>
        <td><?php echo form_input(array('type'=>'hidden','id'=>'ophaal_plaats', 'name'=>'ophaal_plaats', 'value' => $product['ophaal_plaats']));?>
    </tr>

    <tr>
        <td>
            <div class="checkbox">
            <label><input type="checkbox" value="">Gebruik adres van mijn account</label>
            </div>
        </td>
    </tr>

    <tr>
        <td>
        <h4>Huidig cadeau profiel foto</h4>
         <img src="<?php echo base_url(); ?>upload/<?php echo $product['product_foto_thumb']; ?>" class="img-responsive">
        </td>
    </tr>

    <tr>
        <td>
            <h4>Cadeau profiel foto veranderen</h4>
            <input type="file" name="userfile"/>
        </td>
    </tr>

    <tr>
        <td><?php echo form_textarea(array('type'=>'textarea','id'=>'product_beschrijving', 'name'=>'product_beschrijving', 'value' =>$product['product_beschrijving'], 'size'=>25));?></td>
        <td><?php echo form_input(array('type'=>'hidden','id'=>'product_beschrijving', 'name'=>'product_beschrijving', 'value' => $product['product_beschrijving']));?>
    </tr>
    <tr>
        <td><input type="submit" class="btn btn-primary" name="submit" value="Cadeau bewerken!" /></td>
    </tr>
    </table>
    </form>

这是我的控制器文件(KdGwController.php):

<?php


class KdGwcontroller extends CI_Controller {

  public function __construct() {
    parent::__construct();
    $this->load->model('Product_model');
    $this->load->model('Update_product_model');
    $this->load->helper(array('form', 'url'));
  }


  public function details_bewerken($product_id) {
    //load the Product_model
    $this->load->model('Product_model');
    //call function getdata in de Product_model
    $data['userdetail_list'] = $this->Product_model->getdata();

    //get product details
    $data['product'] = $this->Product_model->get_product_details($product_id);

    //laad view
    $data['main_content'] = 'cadeaubewerken';
    $this->load->view('cadeaubewerken',$data); 
  }

   public function update_product() {
     $id= $this->input->post('product_id');
     $data = array(
     'product_naam' => $this->input->post('product_naam'),
     'category_id' => $this->input->post('category_id'),
     'ophaal_plaats' => $this->input->post('ophaal_plaats'),
     );

    }

}

这是我的模型文件:(Update_product_model.php):

<?php

class Update_product_model extends CI_Model {

    function update_product($id,$data){
        $this->db->where('product_id', $id);
        $this->db->update('products', $data);
        header ('location:https://kadokado-ferran10.c9users.io//AlleCadeausController');
    }
}
?>

3 个答案:

答案 0 :(得分:3)

无需在模型中添加update

此外,您的控制器update功能应该像

public function update_product() {
    $id= $this->input->post('product_id');
    $data = array(
        'product_naam' => $this->input->post('product_naam'),
        'category_id' => $this->input->post('category_id'),
        'ophaal_plaats' => $this->input->post('ophaal_plaats'),
     );

    // here I am assuming that `Product` is model
     $this->Product->where($id);
     $this->Product->update($data);
}

答案 1 :(得分:2)

您还没有在控制器中调用模型功能。

更改您的控制器update_product()功能

public function update_product() {

     $id= $this->input->post('product_id');
     $data = array(
     'product_naam' => $this->input->post('product_naam'),
     'category_id' => $this->input->post('category_id'),
     'ophaal_plaats' => $this->input->post('ophaal_plaats'),
     );
     $this->Update_product_model->update_product($id,$data);

}

答案 2 :(得分:0)

您没有从KdGwController.php调用Update_product_model.php的函数update_product()

在您的控制器中更改此内容...

public function update_product() {

 $id= $this->input->post('product_id');
 $data = array(
 'product_naam' => $this->input->post('product_naam'),
 'category_id' => $this->input->post('category_id'),
 'ophaal_plaats' => $this->input->post('ophaal_plaats'),
 );
 $this->Update_product_model->update_product($id,$data); // this line you missed

}