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);
}
StackOverflowのコミュニティは見つける誤りで、私のコード-D質問を歓迎していません。 – kelin
ちょうど1つのことをしてください:1つの隠し変数を取って、それに前の画像名を保存して、ファイルがアップロードされていないかどうかを確認して、その隠し変数値を使用してください。それが役に立てば幸い!!! –