받은 편지함에서 여러 개의 확인란을 선택하고 제출하려면 제출을 클릭하여 데이터베이스에서 여러 개인 메시지를 삭제하려고합니다. 나는 아래 코드를 가지고 있지만 아무 일도 일어나지 않는다. 나는 내가 부족 모르겠어요 ..Codeigniter는 여러 행을 확인란으로 선택하여 삭제합니다.
보기 :
<?php echo form_open('pm/remove_checked'); ?>
<?php foreach ($query as $row): ?>
<input type="checkbox" name="msg[]" value="<?php echo $row->id; ?>" />
<?php echo $row->from; ?>
<?php echo $row->subject; ?>
<?php echo date("m/d/Y",strtotime($row->msg_date)); ?>
<?php endforeach; ?>
<?php echo form_submit('delete', 'Delete'); ?>
</form>
컨트롤러 :
function remove_checked()
{
//validation rules
$this->form_validation->set_rules('msg[]', 'Private Message', 'required|xss_clean');
if ($this->form_validation->run() == FALSE)
{
$data['query'] = $this->Pm_model->received_msg();
$this->load->view('pm/inbox', $data);
}
else //success
{
$checked_messages = $this->input->post('msg'); //selected messages
$this->Pm_model->delete_checked($checked_messages);
//redirect to inbox
}
}
모델 :
function delete_checked($checked_messages)
{
$checked_messages = array();
foreach ($checked_messages as $msg_id):
$this->db->select('id');
$this->db->from('user_msg');
$this->db->where('id', $msg_id);
$this->db->limit(1);
$query = $this->db->get();
if ($query->num_rows() > 0) //if message exists
{
$this->db->where('id', $msg_id);
$this->db->where('recipient', $this->users->get_user_id()); //verify if recipient id is equal to logged in user id
$this->db->delete('user_msg');
}
else
{
return FALSE;
}
endforeach;
}
제안 해 주셔서 감사합니다! 나는'계속'과 거래에 대해 몰랐다. 루프의 경우'($ check_messages as $ key => $ msg_id)'..를 사용해야했습니다. 배열 항목의 값을 얻지 못했습니다. – CyberJunkie