다중 파일첨부한 내용을 표현할때 반복문을 사용하여 태그를 추가한다. 이때 같은 태그를 반복하기 때문에 같은 클래스명으로 추가 된다. 따라서 스크립트를 사용할때 제약이 걸린다. 


이때 태그 안에 data-item을 사용한다.(아래 div 코드가 여러개 존재)


<div id="file_div_<?= $row['file_no'] ?>">
    <input type="button" id="<?= $row['file_no'] ?>" onclick="del_file(this)" 
    data-item="<?= $row['file_no'] ?>" value="삭제하기">
</div>



반복문으로 여러개가 추가 됐을 input 태그에서 onclick으로 아래의 함수를 실행하고 자바스크립트로 값을 받아오고 로직을 처리한다.

function del_file(file_no){
    var file_no = file_no.getAttribute("data-item");
    console.log(file_no);
    $("#file_div_"+file_no).remove();
    $("#delete_file_list_div").append('<input name="delete_file[]" type="hidden" value="'+file_no+'" id="delete_file"/>');
}



반응형

스마트에디터를 사용한 Textarea의 빈값(유효성)을 체크하는 부분은 아래 코드를 사용합니다.



    function submitContents() {
        var elClickedObj = $("#form");
        oEditors.getById["ir1"].exec("UPDATE_CONTENTS_FIELD", []);
        var ir1 = $("#ir1").val();

        if( ir1 == ""  || ir1 == null || ir1 == '&nbsp;' || ir1 == '<p>&nbsp;</p>')  {
             alert("내용을 입력하세요.");
             oEditors.getById["ir1"].exec("FOCUS"); //포커싱
             return;
        }

        try {
            elClickedObj.submit();
        } catch(e) {}
    }



반응형

파일용량을 구할 경우 filesize함수를 사용한다. 리턴 값으로 byte값이 넘어오기 때문에 사이즈를 예측하기 어렵다. 아래와 같이 변환한다.

$file_size = filesize($file_name); if($size < 1024){ return number_format($file_size * 1.024).'b'; }else if(($size > 1024) && ($file_size < 1024000)){ return number_format($file_size * 0.001024).'Kb'; }else if($size > 1024000){ return number_format($file_size * 0.000001024,2).'Mb'; }


반응형

+ Recent posts