// 에드센스
반응형

/* css 속성 */

<style>

/* 페이징 */

.paging{margin-left: -1px; margin-top: 15px; text-align: center;}

.paging a{border: 1px solid #BBBBBB; padding:0 5px; min-width: 14px; height: 16px;line-height: 16px; display: inline-block; text-align: center; margin-left: 1px; color:black; font-size: 11px; text-decoration: none;}

.paging a.over{background: #636363; border-color: #636363; color:white;}

.paging a.first_page, .paging a.last_page{padding: 0 10px;}

</style>

 

 /* 서버 페이징 리스트 페이지에 서 호출 */

 // 총계, 페이지수, 레코드수

if (!$limit) $limit= 10;

if (!$curp) $curp = 1;


$row = $dbConn->sql_fetch("select count(oi_idx) from $table_name $where");

$total_record = $row[0];


if( $total_record > 0 ) $total_pages = ceil($total_record/$limit);

else $total_pages = 1;


if ($curp > $total_pages) $curp=$total_pages;

$start = $limit*$curp-$limit; // do not put $limit*($page - 1)

if($start < 0) $start = 1;

 

 

 

 /* common.php등으로 빠질 함수 */

/*  총레코드, 현재페이지, 제한 레코드 수, 페이징 블럭 수 */

function paging($total_record=1, $current_page=1, $record_num=10, $page_block=10 ){

/* 예외사항 */

if( !$current_page || $current_page < 1 ) $current_page = 1;

if( !$record_num || $record_num < 1 ) $record_num = 10;

if( !$page_block || $page_block < 1 ) $page_block = 10;


/* 총페이지 수 구하기 */

$total_page = ceil($total_record/$record_num);

if( $total_page <= 0 ) $total_page = 1;


/* query String을 그대로 연결해주기 위해서 변수에 담음 */

foreach($_GET as $col => $val){

if( $col != 'curp' && $col != 'limit' && $val != '' ){

$queryString[] = $col.'='.$val;

}

}

$queryString[] = 'limit='.$record_num;

$queryString = implode('&', $queryString);


/* 페이징 블럭 시작, 끝 수 구하기 */

$start_page_block = (ceil(($current_page/$page_block)-1)*$page_block)+1; //시작 블럭(페이징)

$end_page_block = $start_page_block+$page_block; // 마지막블럭(페이징)


/* 이전 버튼 주소 */

$prev_addr = $start_page_block-1;

if( $prev_addr <= 0 ) $prev_addr = 1;


/* 페이징 html 작성 */

$paging.= "<div class='paging'>";

$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=1&$queryString' class='first_page'><<</a>"; // 처음으로 버튼

$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=".$prev_addr."&$queryString' class='prev_page'><</a>"; // 이전 버튼

for($i= $start_page_block; $i< $end_page_block; $i++){

/* 총계를 넘어가면 블럭페이징 멈춤 */

if( $i > $total_page ) break;


/* 페이징 오버 여부 */

$class = '';

if( $current_page == $i ) $class = 'class = "over"';

$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=$i&$queryString' $class>".$i."</a>";

}


/* 다음 버튼 주소가 총계를 넘어간다면 총계가 주소 가 됨. */

if( $end_page_block >= $total_page ) $end_page_block = $total_page;


/* 다음, 마지막 버튼 */

$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=".($end_page_block)."&$queryString' class='next_page'>></a>";

$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=".($total_page)."&$queryString' class='last_page'>>></a>";


/* 페이지 개수별 보기 */

$paging.="

<script>

$(function(){

$('#pageSelect').change(function(){

location.href = '".$_SERVER[PHP_SELF]."?curp=1&limit='+$(this).val();

}).val('$_GET[limit]');

});

</script>

<select id='pageSelect' style='position: absolute; right: 0;'>

<option value='10'>10개씩 보기</option>

<option value='20'>20개씩 보기</option>

<option value='30'>30개씩 보기</option>

<option value='40'>40개씩 보기</option>

<option value='50'>50개씩 보기</option>

<option value='60'>60개씩 보기</option>

<option value='70'>70개씩 보기</option>

<option value='80'>80개씩 보기</option>

<option value='90'>90개씩 보기</option>

<option value='100'>100개씩 보기</option>

<option value='200'>200개씩 보기</option>

<option value='300'>300개씩 보기</option>

<option value='400'>400개씩 보기</option>

<option value='500'>500개씩 보기</option>

</select>

";

$paging.="</div>";


echo $paging;

}

 



g


반응형

'프로그램 > PHP' 카테고리의 다른 글

디비연동이 필요한 셀렉트박스 함수로 지정  (0) 2014.12.01
코드이그나이터 index.php 삭제  (0) 2014.12.01
phpexcel 예제  (0) 2014.12.01
excel 파일 읽기  (0) 2014.12.01
파일 다운로드 예제  (0) 2014.12.01
반응형

예)

<a href="download.php?filename='파일명'">파일명</a>

 

 

 

 

 

<?   

$filename = trim($filename);            //파일이름    

$file = "./디렉토리/$file_name";        //상대경로    

$file_size = filesize($file);     

$filename = urlencode("$file_name");     

    

// 접근경로 확인 (크래킹 방지)  

if (!eregi($_SERVER['HTTP_HOST'], $_SERVER['HTTP_REFERER'])) Error("외부에서는 다운로드 받으실수 없습니다.");     

   

    

if(strstr($HTTP_USER_AGENT, "MSIE 5.5")) {     

  

    header("Content-Type: doesn/matter");     

    header("Content-Length: ".filesize("$file"));     

    header("Content-Disposition: filename=$filename");     

    header("Content-Transfer-Encoding: binary");     

    header("Pragma: no-cache");     

    header("Expires: 0");     

  

} else {     

  

    header("Content-type: file/unknown");     

    header("Content-Disposition: attachment; filename=$filename");     

    header("Content-Transfer-Encoding: binary");     

    header("Content-Length: ".filesize($file));     

    header("Content-Description: PHP3 Generated Data");     

    header("Pragma: no-cache");     

    header("Expires: 0");     

  

}     

    

if( $ret == 1 ) Error("지정하신 파일이 없습니다.");     

if( $ret == 2 ) Error("접근불가능 파일입니다. 정상 접근 하시기 바랍니다.");     

    

if (is_file("$file")) {     

  

    $fp = fopen("$file", "r");     

    if (!fpassthru($fp))     

    fclose($fp);     

  

}     

?>    

반응형

'프로그램 > PHP' 카테고리의 다른 글

디비연동이 필요한 셀렉트박스 함수로 지정  (0) 2014.12.01
코드이그나이터 index.php 삭제  (0) 2014.12.01
phpexcel 예제  (0) 2014.12.01
excel 파일 읽기  (0) 2014.12.01
페이징 함수  (0) 2014.12.01
반응형

function setCookie( name, value, expiredays )

{

var todayDate = new Date();

todayDate.setDate( todayDate.getDate() + expiredays );

document.cookie = name + "=" + escape( value ) + "; expires=" + todayDate.toGMTString() + ";"

}

반응형
반응형

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

    <style type="text/css">

.photoBox .preViewImg{ width: 70px; height: 70px; text-align: center; border:1px solid silver; }

.photoBox .fileData{display: none;}

    </style>

    <script type="text/javascript">

        function fileUploadPreview(thisObj, preViewer) {

// 형식 체크

            if(!/(\.gif|\.jpg|\.jpeg|\.png)$/i.test(thisObj.value)) {

                alert("이미지 형식의 파일을 선택하십시오");

$(thisObj).val('');

                return;

            }

 

            var preViewer = $('.preViewImg:last');//(typeof(preViewer) == "object") ? preViewer : document.getElementById(preViewer);

            var ua = window.navigator.userAgent;

 

// 렌더링 버전 알아내기

    var rv = -1;

if (navigator.appName == 'Microsoft Internet Explorer') {

var ua = navigator.userAgent;

var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");

if (re.exec(ua) != null) rv = parseFloat(RegExp.$1);

}

 

// ie 브라우저이며 ie10 미만 버전

            if (ua.indexOf("MSIE") > -1 && rv < 10) {

                var img_path = "";

                if (thisObj.value.indexOf("\\fakepath\\") < 0) {

                    img_path = thisObj.value;

                } else {

                    thisObj.select();

                    var selectionRange = document.selection.createRange();

                    img_path = selectionRange.text.toString();

                    thisObj.blur();

                }

                $(preViewer).css('filter',"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fi" + "le://" + img_path + "', sizingMethod='scale')").show();

 

var cloneHtml = $('.photo_list:last').clone();

cloneHtml.find('input').val('');

cloneHtml.find('img').removeAttr('src','style').hide();

$(thisObj).parents('.photoBox:first').append( cloneHtml );

            }else{ // 그외 브라우저

var reader = new FileReader();

reader.readAsDataURL(thisObj.files[0]);

reader.onload = function (e) {

$('.preViewImg:last').attr('src', e.target.result).show();

 

var cloneHtml = $('.photo_list:last').clone();

cloneHtml.find('input').val('');

cloneHtml.find('img').attr('src','').hide();

$(thisObj).parents('.photoBox:first').append( cloneHtml );

}

}

        }

    </script>

</head>

<body>

<img src="after_addPhoto.png" onclick="$('.fileData:last').click();" />

 

<div class="photoBox">

<div class='photo_list'>

<input class='fileData' name="fileData" type="file" onchange="fileUploadPreview(this, 'preView')" />

<img class="preViewImg" />

</div>

</div>

</body>

</html>

반응형

'프로그램 > jquery' 카테고리의 다른 글

javascript 타이머  (0) 2024.01.05
javascript setcookie  (0) 2014.12.01
숫자만입력, 한글만입력  (0) 2014.12.01
javascript 날짜설정.  (0) 2014.12.01
jquery의 폼선택.  (0) 2014.12.01
반응형

    //한글만 입력 가능하도록 처리 하는 부분

        $("#nametext").keyup(function (event) {

            regexp = /[a-z0-9]|[ \[\]{}()<>?|`~!@#$%^&*-_+=,.;:\"'\\]/g;

            v = $(this).val();

            if (regexp.test(v)) {

                alert("실명을 입력하여 주세요\n한글만 입력가능 합니다.");

                $(this).val(v.replace(regexp, ''));

            }

        });

        //숫자만 입력 가능하도록 처리 하는 부분

        $("#phonetext").keyup(function (event) {

            regexp = /[^0-9]/gi;

            v = $(this).val();

            if (regexp.test(v)) {

                alert("숫자만 입력가능 합니다.\n-(하이픈)을 제외한 숫자만 입력하여 주세요.");

                $(this).val(v.replace(regexp, ''));

            }

        });

        //숫자는 4자리까지만 가능하도록 처리 하는 부분

        $("#passtext").keyup(function (event) {

            regexp = /\d\d\d\d{2,4}/gi;

            v = $(this).val();

            if (regexp.test(v)) {

                alert("숫자는 4자리까지만 입력가능 합니다.");

                $(this).val(v.replace(regexp, ''));

            }

        });

        //숫자만 입력 가능하도록 처리 하는 부분

        $("#passtext").keyup(function (event) {

            regexp = /[^0-9]/gi;

            v = $(this).val();

            if (regexp.test(v)) {

                alert("숫자만 입력가능 합니다.");

                $(this).val(v.replace(regexp, ''));

            }

        });

 

반응형
반응형

var settingDate = new Date();
settingDate.setDate(settingDate.getDate()-1); //하루 전
$("#endDate").val(settingDate.asString()); 

settingDate.setMonth(settingDate.getMonth()-1); //한달 전
$("#startDate").val(settingDate.asString());

settingDate.setYear(settingDate.getYear()-1); //일년 전
$("#startDate").val(settingDate.asString());


반응형
반응형

1. $('#아이디')[0].submit()

2. $('#아이디')[0].reset();

 

자바스크립트 기본함수인 submit이나 reset을 할 경우에는 배열 순서를 정해주어야하고

 

serialize()나 serializeArray()같은 jquery 내부 함수는

$('#아이디').serialize(); 로 해야한다.

 

 

이유는 잘모름.

 

반응형

'프로그램 > jquery' 카테고리의 다른 글

숫자만입력, 한글만입력  (0) 2014.12.01
javascript 날짜설정.  (0) 2014.12.01
event.target 와 event.srcElement의 차이.  (0) 2014.12.01
jsonp 사용법.  (0) 2014.12.01
jqueryui-datepicker 한국형 옵션.  (0) 2014.12.01
반응형

jquery를 이용해서 함수를 작성하거나 일련의 이벤트를 작동시킬때는 id 혹은 class를 주로 이용한다.

 

$('#아이디').slideUp();

$('.클래스').slideUp();

 

근데 미리 지정되어 있지 않은 유동적인 객체에 이벤트를 바인딩하려면 this 라는 키워드를 쓴다.

 

function test( eventObject ){

-> 함수 내용 기재

}

 

onclick="test(this);"

 

여기서 윈도우의 이벤트 객체를 활용하면 이벤트가 일어난 개체를 활용해서 this를 삭제 할 수 있다.

 

function test(){

var eventObject = (event.target)?event.target:event.srcElement;

 


}

 

이렇게되면 eventObject가 이벤트가 일어난 개체 자기 자신이 된다.

삼단 문항을 쓴이유는 event.target라는 객체가 존재하면 target라는 객체를 쓰는것이고

ie 8버전 이하는 srcElement를 반환 하기때문에 크로스 브라우징을 위해선 저런식으로 둘다 조건에 주어야 나중에 오류 없이 객체를 쓸 수 있다.

 

이렇게되면 저 함 수를 가져다 쓰는 부분은

onclick="test()";

 

함수명만 기재해주면 된다.

 

난 html이 깔끔한게 좋아서 this라는 객체를 잘안쓰고 레디부분에는 함수를 바인딩해주고 그외 영역에 함수를 넣어서 html과 js는 분리시킨다.

 

$(document).ready(function(){

    $('#test').click(function(){

        action();
    });

});

 

function action(){

    alert('test');
}

 

<input type='button' id='test' />

 

이런식....

 

반응형

'프로그램 > jquery' 카테고리의 다른 글

javascript 날짜설정.  (0) 2014.12.01
jquery의 폼선택.  (0) 2014.12.01
jsonp 사용법.  (0) 2014.12.01
jqueryui-datepicker 한국형 옵션.  (0) 2014.12.01
autoComplete() 만들어보기.  (0) 2014.12.01
반응형

jquery 기존 ajax 방식은 ie 10 미만 버전에서는 타브라우저에서 ajax 통신이 안됨.

해결방법 1:

$.getJSON('url?callback=?', funciton(data){  

for(i=0; i<data.length; i++){

$('body').append( data[i].a);
}​

}); 

// callback자리를 주고 data로 리턴값을 받아온다.

서버언어 php 페이지

$data = array(

'a'=>1,

'b'=>2,

'c'=>3
);​

$data_list = array();

$data_list[] = $data;​

$data_list[] = $data;

$data_list[] = $data;​​

echo $_GET['callback'].'('.json_encode($data_list).')';​

해결방법 2:

$.ajax({

url:'',

dataType:'jsonp',

success:function(data){

 

위와 동일

 

 


}); 

반응형

'프로그램 > jquery' 카테고리의 다른 글

jquery의 폼선택.  (0) 2014.12.01
event.target 와 event.srcElement의 차이.  (0) 2014.12.01
jqueryui-datepicker 한국형 옵션.  (0) 2014.12.01
autoComplete() 만들어보기.  (0) 2014.12.01
키보드로 저장구현할때.  (0) 2014.12.01
반응형

$('.datepicker').datepicker({

dateFormat: "yy-mm-dd",

closeText: '닫기',

prevText: '이전달',

nextText: '다음달',

    currentText: '오늘',

monthNames: ['1월','2월','3월','4월','5월','6월',

'7월','8월','9월','10월','11월','12월'],

monthNamesShort: ['1월','2월','3월','4월','5월','6월',

'7월','8월','9월','10월','11월','12월'],

dayNames: ['일','월','화','수','목','금','토'],

dayNamesShort: ['일','월','화','수','목','금','토'],

dayNamesMin: ['일','월','화','수','목','금','토'],

showMonthAfterYear: true,

});

반응형

'프로그램 > jquery' 카테고리의 다른 글

event.target 와 event.srcElement의 차이.  (0) 2014.12.01
jsonp 사용법.  (0) 2014.12.01
autoComplete() 만들어보기.  (0) 2014.12.01
키보드로 저장구현할때.  (0) 2014.12.01
jquery 선택자, 함수정리  (0) 2014.12.01

+ Recent posts