Tôi đang sử dụng CodeIgniter và tôi có biểu mẫu có hộp kiểm cho phép người dùng kiểm tra và xóa ảnh đã tải lên của họ.
Trong bộ điều khiển của tôi, tôi sử dụng if(isset($checked) == 1)
để kiểm tra xem người dùng có muốn xóa ảnh hay không.
$photo_to_table
sẽ đặt trống và chuyển đến $this->tank_auth->update_user()
để thực hiện cập nhật db và đặt trường ảnh thành trống trong bảng. Nếu không, ảnh sẽ vẫn giữ nguyên.
Giá trị hộp kiểm tra mã vạch
Nhưng trong mã của tôi, cho dù tôi có kiểm tra hay không, khi tôi nhấp vào nút UPDATE
, nó vẫn tiếp tục xóa ảnh, tôi tự hỏi tại sao nó lại xảy ra?
Ai đó có thể vui lòng xem mã của tôi và đưa ra lời khuyên không?
Bộ điều khiển:
$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());
}
}
Xem:
<?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
}
?>
Cảm ơn.
điều này đến trước. đã đồng ý với nó .. –
Cảm ơn bạn rất nhiều :) – conmen