2016-11-29 10 views
0

タイトル、画像、日付と共に画像ギャラリーを表示するシンプルなフォームがあります。私の問題は画像の入力です。codeigniterにアップロードする新しい画像を選択せず​​にフォームを送信した後、以前にアップロードした画像を保存する方法

新しい画像を選択してすべて送信すると画像はうまくいきますが、画像を選択していないときは、画像フィールドに空白のデータが保存されます。

イメージの変更をオプションにしてフォームを保存する方法はありますか?

コントローラコード

public function submitwedding() 
{ 
    if(isset($_POST['edit']) && $_POST['edit']=='EDIT') 
    { 

     move_uploaded_file($_FILES['avatar']['tmp_name'],'uploadimg/'.$_FILES['avatar']['name']); 

     $data = array('title'=>$_POST['edit1'],'avatar'=>$_FILES['avatar']['name'],'date'=>$_POST['date']); 

     $this->Dbfunction->updatedata('wedding',$data,$_POST['id']); 

     redirect(base_url().'index.php/admin/wedding'); 
    } 
} 

フロントエンドコーディング

<tr> 
    <td width="25%" >Title</td> 
    <td></td> 
    <td width="70%"><input type="text" name="edit1" id="title" style="width:250px"class="form-control" value="<?php echo $row->title ?>"></td> 
</tr> 
<tr height="10px"></tr> 
<tr> 
    <td width="25%" >image</td> 
    <td></td> 
    <td width="70%"> 
     <input type="file" name="avatar" value="<?php echo $row->avatar;?> " id="avatar" size="20" /><img src="<?php echo base_url(); ?>uploadimg/<?php echo $row->avatar; ?>"/> 
    </td> 
</tr> 
<tr> 
    <td width="25%" >Date</td> 
    <td></td> 
    <td width="70%"><input type="text" name="date" id="date" style="width:250px"class="form-control" value="<?php echo $row->date ?>"></td> 
</tr> 

Dbfunctionコーディング

function selectdatabyid($table , $id) 
{ 
    $query = $this->db->query('select * from '.$table.' where id='.$id); 
    return $query->row(); 
} 
function updatedata($table , $data , $id) 
{ 
    $this->db->where('id', $id); 
    $this->db->update($table, $data); 
} 
function deletedata($table, $id) 
{ 
    $this->db->where('id', $id); 
    $this->db->delete($table); 
} 
+0

StackOverflowのコミュニティは見つける誤りで、私のコード-D質問を歓迎していません。 – kelin

+0

ちょうど1つのことをしてください:1つの隠し変数を取って、それに前の画像名を保存して、ファイルがアップロードされていないかどうかを確認して、その隠し変数値を使用してください。それが役に立てば幸い!!! –

答えて

0

なぜドンimage-form-tagのvalue=""属性を空のままにしていませんか?ユーザーがアップロードする新しい画像を選択せず​​に送信する場合は、データベースのフィールドを更新しないでください。

ちょうどあなたのPHPコードにifを追加します。

if(!empty($_POST['avatar'])) { 
    // update avatar because input is not empty 
} 
関連する問題