| 제목 | Form-post으로 값을 보내서 파일 삭제를 하는데요. 취소를 눌러도 삭제가 됩니다. | ||
|---|---|---|---|
| 글쓴이 | 룰루쭈쭈 | 작성시각 | 2015/10/17 11:19:31 |
|
|
|||
//View 파일
<!-- begin panel -->
<div class="panel panel-inverse">
<div class="panel-heading">
<h4 class="panel-title"><?php echo lang('fileshow')?></h4>
</div>
<div class="panel-body">
<?php
$default_dir = "./uploads/";
if (!$dh = @opendir($default_dir)) {
return false;
}
echo "<table class=\"table\">";
echo "<thead>";
echo "<tr>";
echo "<th>";
echo "Number";
echo "</th>";
echo "<th>";
echo "File name";
echo "</th>";
echo "<th>";
echo "Time";
echo "</th>";
echo "<th>";
echo "Size";
echo "</th>";
echo "<th>";
echo "Update";
echo "</th>";
echo "<th>";
echo "Delete";
echo "</th>";
echo "</tr>";
echo "</thead>";
echo ("<tbody>");
$count = -2;
while (($file = readdir($dh)) !== false) {
$count++;
if ($file == "." || $file == "..") continue; // . 과 .. 디렉토리는 무시
echo ("<tr>");
echo ("<td>");
echo ("$count");
echo ("</td>");
echo ("<td>");
echo ("$file");
// echo nl2br("$file\n");
echo ("</td>");
echo ("<td>");
echo date('Y-m-d H:i:s', filemtime("./uploads/$file"));
echo ("</td>");
// $filename = '$file';
echo ("<td>");
// echo sizeof($file);
echo filesize("./uploads/$file").' byte';
// echo $filename . ': ' . filesize($filename) . ' bytes';
echo ("</td>");
echo ("<td>");
echo "<button class=\"btn btn-warning m-r-5 m-b-5\">Update</button>";
echo ("</td>");
echo ("<td>");
echo ("<form id=\"form1\" name=\"form1\" method=\"post\" action=\"do_delete\" >");
//echo ("<form id=\"form1\" name=\"form1\" method=\"post\" action=\"do_delete\" onsubmit=\"return false\">");
//echo ("<form method=\"post\" action=\"\">");
// 모달을 켜고 끄는 버튼
//echo "<button class=\"btn btn-danger delete\" data-target=\"#layerpop\" data-toggle=\"modal\" value=\"./uploads/$file\" name=\"filelocation\" onclick=\"button_event();\">Delete</button>";
//echo "<input type=\"button\" value=\"삭제하기\" value=\"./uploads/$file\" name=\"filelocation\" onclick=\"button_event();\" >";
echo "<button class=\"btn btn-danger m-r-5 m-b-5\" id=\"filelocation\" value=\"./uploads/$file\" name=\"filelocation\" onclick=\"button_event();\" >Delete</button>";
//echo "<button class=\"btn btn-danger delete\" value=\"./uploads/$file\" name=\"filelocation\" onclick=\"button_event();\" >Delete</button>";
echo "</form>";
echo ("</td>");
echo ("</tr>");
// echo "<INPUT type="checkbox" name="chk[]" value="">";
}
echo ("</tbody>");
echo "</table>";
closedir($dh);
?>
</div>
</div>
<!-- end row -->
<!-- end panel -->
</div>
<script type="text/javascript">
$(document).ready(function() {
// UI init
App.init();
});
function button_event(){
if (confirm("정말 삭제하시겠습니까??") == true){ //확인
//document.form.submit();
}else{ //취소
document.form1.filelocation.value="none";
// document.form1.filelocation.value="none";
//document.form1.filelocation.innerHTML="none";
return;
}
}
</script>
//Controller 파일
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Update extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper(array('form', 'url'));
$currentSession = $this -> session;
if (!$currentSession->userdata['user']) {
// 세션에 사용자 정보 없을시 로그인 페이지로 이동
header("Location: " . '/login');
} else {
// 세션에 권한 없을시 이전페이지로 이동
$user = $currentSession->userdata['user'];
if ($user['role_system_update'] != 'Y') {
redirect_back();
}
}
}
public function index()
{
header("Location: " . '/update/upload');
}
public function upload()
{
// 세션에서 사용자 정보 가져오기
$data['user'] = $this->session->userdata('user');
$this->load->view('update/upload_form', $data);
}
public function do_upload()
{
$config['upload_path'] = './uploads/';
//$config['allowed_types'] = 'gif|jpg|png|gz|tar|tgz';
$config['allowed_types'] = '*';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$data['error'] = array('error' => $this->upload->display_errors());
$data['user'] = $this->session->userdata('user');
$this->load->view('update/upload_form', $data);
}
else
{
$data = array('upload_data' => $this->upload->data());
$data['user'] = $this->session->userdata('user');
$this->load->view('update/upload_success', $data);
}
}
public function do_delete()
{
$file_loc = $this -> input -> post('filelocation');
$data['user'] = $this->session->userdata('user');
if($file_loc=="none"){
$this->load->view('update/upload_form', $data);
}
else
{
unlink($file_loc);
$this->load->view('update/upload_form', $data);
}
}
}
1. 알림 확인/ 취소 에서 취소를 선택해서 submit이 안되고, value 값을 none으로 주었는데도 파일이 삭제가 실행이 되어서 삭제가 됩니다. 어떤 문제일가요?
그리고
echo ("<form id=\"form1\" name=\"form1\" method=\"post\" action=\"do_delete\" >");
// 모달을 켜고 끄는 버튼
//echo "<button class=\"btn btn-danger delete\" data-target=\"#layerpop\" data-toggle=\"modal\" value=\"./uploads/$file\" name=\"filelocation\" onclick=\"button_event();\">Delete</button>";
echo "<button class=\"btn btn-danger m-r-5 m-b-5\" id=\"filelocation\" value=\"./uploads/$file\" name=\"filelocation\" onclick=\"button_event();\" >Delete</button>";
echo "</form>";
2. 원래 여기서 모달창을 오픈 할려고했는데 form 안에 modal창 키는 버튼을 넣으니 모달창이 켜지자마자 리로드 되어버립니다. form 문안에서 뺴니깐 또 되더라구요 이건 무슨 문제일까요?
|
|||
| 다음글 | mysql 한글 인서트 시 한글만 빼고 들어갑니다 (2) | ||
| 이전글 | 정규식 질문입니다. (1) | ||
|
닉
/
2015/10/19 10:41:54 /
추천
0
1.
요렇게 바꿔보시면 될거같아요. 버튼은 클릭하면 기본적으로 폼 서브밋이 되는데 리턴펄스를 넣어서 서브밋 되는걸 막아주시면 될거 같습니다.
|
|
룰루쭈쭈
/
2015/10/22 09:14:15 /
추천
0
감사합니다 !
바꾸고 확인누르니 안되고 취소 누르니 삭제되길래 밑에 이벤트함수에서 확인쪽에 서브밋 집어넣고, else에는 없게끔했더니 정상적으로 됩니다.ㅎ 고맙습니다. |