我使用CodeIgniter,並且我有一個帶有複選框的表單,允許用戶檢查並刪除他們上傳的照片。
在我的控制器中,我使用if(isset($checked) == 1)
來檢查用戶是否要刪除照片。
$photo_to_table
將設置爲空並通過$this->tank_auth->update_user()
執行數據庫更新,並將表中的照片字段設置爲空。否則,它將保持相同的照片。
Codeigniter檢查複選框的值
但在我的代碼中,無論是否檢查它,當我點擊UPDATE
按鈕時,它會一直刪除照片,我不知道爲什麼會發生這種情況?
有人可以通過我的代碼並給出建議嗎?
控制器:
$user_id = $this->session->userdata('user_id');
$profile = $this->users->get_profile_by_id($user_id);
if(!empty($_FILES['photo']['name']))
{
//image upload process
}
else
{
$checked = $this->input->post('remove');
if(isset($checked) == 1)
{
$photo_to_table = '';
// here will do remove process to delete file in directory
}
else
{
$photo_to_table = $profile->photo;
}
}
if($this->form_validation->run()) { // validation ok
if(!is_null($data = $this->tank_auth->update_user(
$this->form_validation->set_value('name'),
$this->form_validation->set_value('country'),
$this->form_validation->set_value('website'),
$photo_to_table
)))
{
// success
$this->session->set_flashdata('msg', 'Profile has been updated');
redirect(current_url());
}
}
查看:
<?php echo form_open_multipart($this->uri->uri_string()); ?>
<table border="0">
<?php
if(!empty($uphoto)){
?>
<tr>
<td>
<div>
<img src="<?php echo base_url().$userpath.$uphoto; ?>" />
</div>
<div>
<input id="remove" type="checkbox" name="remove">
<label for="remove">Remove photo</label>
</div>
</td>
</tr>
<?php
}
?>
感謝。
。同意它.. –
非常感謝你:) – conmen