我有一个简单的表单,显示图像库以及标题,图像和日期。我的问题是图像输入。
选择一个新的并提交一切正常但当我没有选择任何图像时,它会在图像字段中保存空白数据。
有没有办法保存表单,图像更改是可选的?
控制器代码
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 Coding
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 :(得分:0)
为什么不让image-form-tag的value=""
属性为空?当用户提交而未选择要上传的新图片时,请不要更新数据库中的字段。
只需在您的php代码中添加if
:
if(!empty($_POST['avatar'])) {
// update avatar because input is not empty
}