2016-05-05 4 views
0

私は既にアップロードした画像を編集しようとしていますので、編集をクリックすると画像の名前を入力できません。ここにコントローラのコードがあります:入力、コードイグナイタの編集フォームの画像の名前を取得する方法

これは、アイテムの詳細を編集したいのですが、そのイメージを編集したくないということです。 コントローラ

//method to edit category 
public function edit_menu($id) { 
    if($this->isLogin()) {  
    //object/instance of menu 
    $menu_list = new Menu(); 
    //calling method of , menu model 
    $menu_list->load($id);    
    //print_r($menu_list); 

    $menu_list_array = (array)$menu_list;  
    //object/instance of category 
    $category = new Category(); 
    //calling method of category model  
    $category_list = $this->Category->get(); 
    //creating an array to hold data 
    $category_form_options = array(); 
    //iterate through loop 
    foreach ($category_list as $id => $category) { 
     $category_form_options[$id] = $category->category_name; 
    }  
    //creating an array to hold data for category and menu, to pass data to view 
    $data = array(); 
    //category key of data array to hold category details 
    $data['category'] = $category_form_options[$menu_list_array['category_id']];; 
    //menu key of data array to hold menu details 
    $data['menu'] = $menu_list;  
    //CI built-in method to have three params, first is field id, second is human readable lable to show in case of error, rules include required, type. 
    $this->form_validation->set_rules(array(
     array('field' => 'category_id','label' => 'Category', 'rules' => 'required',), 
     array('field' => 'type','label' => 'Type','rules' => 'required',), 
     array('field' => 'menu_name', 'label' => 'Menu Name', 'rules' => 'required',), 
     array('field' => 'description','label' => 'Description','rules' => 'required',), 

    )); 
     if (empty($_FILES['avatar']['name'])){ 
     $this->form_validation->set_rules('avatar', 'Avatar', 'required'); 
     } 
    //CI method to error delimiters, 
    //https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#errordelimiters 
    $this->form_validation->set_error_delimiters('<div class="alert alert-error">', '</div>'); 
    if (!$this->form_validation->run()) { 

      $datas['title'] = ""; 
      $this->load->view('header', $datas); 
       //this will load data 
      $this->load->view('category_form_edit', array('category_form_options' => $category_form_options, 'data' =>$data,));  
      $this->load->view('footer'); 
    } 
    else { 

     $config['upload_path'] = './assets/images/'; 
     $config['allowed_types'] = 'gif|jpg|png|jpeg'; 

     $this->load->library('upload', $config); 
     $this->upload->do_upload('avatar'); 
     $data_upload_files = $this->upload->data(); 

     //record from global post variable to model fields. 
     $menu_data = array(); 
     $menu_data['category_id'] = $menu_list->category_id = $this->input->post('category_id'); 
     $menu_data['type'] = $menu_list->type = $this->input->post('type'); 
     $menu_data['menu_name'] = $menu_list->menu_name = $this->input->post('menu_name'); 
     $menu_data['description'] = $menu_list->description = $this->input->post('description'); 
     $menu_data['per_gram'] = $menu_list->per_gram = $this->input->post('per_gram'); 
     $menu_data['per_quantity'] = $menu_list->per_quantity = $this->input->post('per_quantity'); 
     $menu_data['per_dozen'] = $menu_list->per_dozen = $this->input->post('per_dozen'); 
     $menu_data['avatar'] = $menu_list->avatar = $data_upload_files['file_name']; 
     $menu_data['updated_by'] = $menu_list->updated_by = $_SESSION['user_id']; 
     $menu_data['updated_on'] = $menu_list->updated_on = date('Y-m-j H:i:s'); 
       //update model 
     $id = $menu_list_array['menu_id']; 
      $where = array('menu_id' => $id); 
     $menu_list->update('menus', $menu_data, $where); 

     $this->load_menu(); 
    } 
    } 
} 

ビュー

 <?php echo form_open_multipart('', 'fscontrol/edit_menu');?> 
     <!-- <form method="post"> --> 
      <div class="form-group"> 
       <label for="category_id">Category Name</label> 
       <select name="category_id" class="form-control" > 
        <?php   
        foreach ($category_form_options as $category_id => $category_name) { 
        $selected = $data_array['category_id'] == $category_id ? 'selected' : ''; 
         echo '<option ' . $selected. ' value="' . html_escape($category_id) . '">' . html_escape($category_name) . '</option>'; 
        } 
        ?> 

       </select> 
      </div> 
      <div class="form-group"> 
       <label for="type">Type</label> 
       <input type="text" class="form-control" name="type" value="<?php echo $data_array['type']; ?>"> 
      </div> 
      <div class="form-group"> 
       <label for="menu_name">Menu Name</label> 
       <input type="text" class="form-control" name="menu_name" value="<?php echo $data_array['menu_name']; ?>"> 
      </div> 
      <div class="form-group"> 
       <label for="description">Description</label> 
       <input type="text" class="form-control" name="description" value="<?php echo $data_array['description']; ?>"> 
      </div> 
      <div class="form-group"> 
       <label for="per_gram">Per gram</label> 
       <input type="text" class="form-control" name="per_gram" value="<?php echo $data_array['per_gram']; ?>"> 
      </div>  
      <div class="form-group"> 
       <label for="per_quantity">Per quantity</label> 
       <input type="text" class="form-control" name="per_quantity" value="<?php echo $data_array['per_quantity']; ?>"> 
      </div> 
      <div class="form-group"> 
       <label for="per_dozen">Per dozen</label> 
       <input type="text" class="form-control" name="per_dozen" value="<?php echo $data_array['per_dozen']; ?>"> 
      </div> 
      <div class="form-group"> 
       <label for="avatar">Photo</label>  
       <input type="file" class="form-control" name="avatar" size="20" value="<?php echo $data_array['avatar']; ?>">    
      </div> 
      <div class="form-group"> 
       <input type="hidden" name="menu_id" value="<?php echo $data_array['menu_id']; ?>"> 
       <input type="submit" class="btn btn-default" value="Edit"/> 
      </div> 
     </form> 
+0

イメージを保存するときは、ファイル名またはファイルパスのみを保存します。次に、ファイル名またはファイルパスを照会します。 – Philip

+0

私は両方をやっています。つまり、画像フォルダに画像を保存し、データベースに画像の名前を保存することを意味します。アップロードすることはできますが、項目を編集するにはフォームに画像名私には「選択されていないファイル」は表示されません。それから私はイメージをアップロードし直さなければなりません、そして、私はイメージフォルダに多くの同様のイメージで終わるでしょう。なにか提案を? – mory

答えて

-1

あなたがイメージ名を取得することはありません、ブートストラップテンプレートを使用している場合。あなただけ見えないよ:

選ばれた何のファイルをだから、使用することをお勧めし:

<img src="">

、表示画像を強打爪として。

+0

はい私はアイテムを編集したいときに、最初にフォームの入力内のアイテムの詳細をすべて見る必要があるが、入力ファイルが何も表示されない、選択されたファイルが表示されない、ブートストラップテンペラートを使用しています。私が編集をしたいのであれば、そのイメージをアップロードし直して、最後にはイメージフォルダに非常に多くの繰り返しイメージが残ることを意味します。私はチュートリアルを持っています。しかし私はそれを修正することができませんでした。 – mory

+0

書く方法とはどこですか?私は試みたが、doesntの仕事。 – mory

関連する問題