2010년 2월 9일 화요일
[PHP] CSV 파일 DB에 입력하는 소스
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040203&docId=71861876&qb=cGhwIOyXkeyFgCBkYiDsnoXroKU=&enc=utf8§ion=kin&rank=1&sort=0&spq=0&pid=f3vGtdoi5TVsssPXPBVsss
--028753&sid=S2-1DMDeb0sAAGxfNa8
윈도기반 오피스가 깔려있고, 윈도우서버를 이용시
PHP로 엑셀 -> DB 입력방법 혹은 DB->엑셀로 추출
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=70906
2010년 2월 5일 금요일
<textarea> 값의 엔터값 분류 처리
replace(content, chr(13) & chr(10),"<br>")
replace(contents, VbCrLf, "<br>")
contents= contents.replaceAll("\r\n","<br>");
[자바스크립트] 왼쪽 or 오른쪽 영역 따라다니는 스크롤 배너 or 스크롤 이미지
슬라이드 스크롤 배너 more..
<script language="javascript">
<!--
var stmnLEFT = 400; // 왼쪽 여백(메뉴가 왼쪽에서 10픽셀 떨어진 곳에 보여집니다)
var stmnGAP1 = 10; // 위쪽 여백(메뉴가 위에서 10픽셀 떨어진 곳에 보여집니다)
var stmnGAP2 = 10; // 스크롤시 브라우저 위쪽과 떨어지는 거리
var stmnBASE = 150; // 스크롤 시작위치
var stmnActivateSpeed = 200;
var stmnScrollSpeed = 10;
var stmnTimer;
function ReadCookie(name)
{
var label = name + "=";
var labelLen = label.length;
var cLen = document.cookie.length;
var i = 0;
while (i < cLen) {
var j = i + labelLen;
if (document.cookie.substring(i, j) == label) {
var cEnd = document.cookie.indexOf(";", j);
if (cEnd == -1) cEnd = document.cookie.length;
return unescape(document.cookie.substring(j, cEnd));
}
i++;
}
return "";
}
function SaveCookie(name, value, expire)
{
var eDate = new Date();
eDate.setDate(eDate.getDate() + expire);
document.cookie = name + "=" + value + "; expires=" + eDate.toGMTString()+ "; path=/";
}
function RefreshStaticMenu()
{
var stmnStartPoint, stmnEndPoint, stmnRefreshTimer;
stmnStartPoint = parseInt(STATICMENU.style.top, 10);
stmnEndPoint = document.body.scrollTop + stmnGAP2;
if (stmnEndPoint < stmnGAP1) stmnEndPoint = stmnGAP1;
stmnRefreshTimer = stmnActivateSpeed;
if ( stmnStartPoint != stmnEndPoint ) {
stmnScrollAmount = Math.ceil( Math.abs( stmnEndPoint - stmnStartPoint ) / 15 );
STATICMENU.style.top = parseInt(STATICMENU.style.top, 10) + ( ( stmnEndPoint<stmnStartPoint ) ? -stmnScrollAmount : stmnScrollAmount );
stmnRefreshTimer = stmnScrollSpeed;
}
stmnTimer = setTimeout ("RefreshStaticMenu();", stmnRefreshTimer);
}
function ToggleAnimate()
{
if (ANIMATE.checked) {
RefreshStaticMenu();
SaveCookie("ANIMATE", "true", 300);
}
else {
clearTimeout(stmnTimer);
STATICMENU.style.top = stmnGAP1;
SaveCookie("ANIMATE", "false", 300);
}
}
function InitializeStaticMenu()
{
STATICMENU.style.left = stmnLEFT;
if (ReadCookie("ANIMATE") == "false") {
ANIMATE.checked = false;
STATICMENU.style.top = document.body.scrollTop + stmnGAP1;
}
else {
ANIMATE.checked = true;
STATICMENU.style.top = document.body.scrollTop + stmnBASE;
RefreshStaticMenu();
}
}
//-->
</script>
=====================================================================
바디옵션에 추가하시고,
<body onLoad="InitializeStaticMenu();">
배너 링크안에 id를 추가하세요.
<img src="배너경로" id="STATICMENU" border="0">
위 소스는 스크롤을 끄게 하는 기능도 가지고 있습니다.
<input id="Animate" type="checkbox" onclick="ToggleAnimate();">스크롤기능끄기
이런식의 소스를 사용하면 스크롤여부도 직접 체크할 수 있게 됩니다.
딱딱한 스크롤 배너 more..
<tr>
<td>
<div id=rightBanner style="position:absolute;width:159;">
<script language="javascript" src="/rightBanner.js"></script>
<table width="156" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>이미지</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
----------------------------------------------------------------
**** 자바스크립트 : 오른쪽 배너를 움직이게 해주는 소스입니다
(rightBanner.js)
// 1과 2만 수정 하면됩니다
// navigator check
var isMSIE = 0;
var nVersion = 3;
var nInterval = 1000; // ************** (1) 크면 늦게 반응함
var AdCornerLayer;
function setup () {
// Navigator
nVersion = parseInt (navigator.appVersion);
if(nVersion <4) return;
if(navigator.appName == "Microsoft Internet Explorer") {
isMSIE = 1;
if (navigator.userAgent.indexOf ("MSIE 5") != -1) {
nVersion = 5;
}
rightBanner.style.visibility="visible";
}
else {
isMSIE = 0;
if (nVersion >= 4) {
AdCornerLayer= document.layers["rightBanner"];
AdCornerLayer.visibility = "show";
}
}
window.setInterval ("AdCornerMove();", nInterval);
}
function AdCornerMove () {
if (isMSIE) {
nAdCornerOriginY = 222; // ************** (2) 처음 위치할 곳 (위에서부터 위치)
nAdCornerOriginY += document.body.scrollTop;
rightBanner.style.pixelTop = nAdCornerOriginY;
}
else {
nAdCornerOriginY = window.innerHeight + window.pageYOffset - AdCornerLayer.clip.height - 5;
if (window.scrollbars.visible == true) {
nAdCornerOriginY -= 800;
}
AdCornerLayer.top = nAdCornerOriginY;
}
}
setup();
2010년 1월 29일 금요일
[자바스크립트] POST 변수값 팝업창으로 넘기기
open("", "mypop", "width=530, height=800"); // 먼저 빈 창을 mypop 라는 이름으로 열어놓고
document.fwrite.action = "test_inp.php?no="+no; // 'test_inp.php' 를 fwrite이 실행될 action 으로 지정한다.
document.fwrite.target = "mypop"; // 이 부분이 핵심! 열어놓은 빈 창(mypop)을 fwrite이 날아갈 target으로 정한다.
document.fwrite.method = "post"; // target에 submit할 방식을 post 방식으로 지정한다.
document.fwrite.submit(); // target에 쏜다.
}
[자바스크립트] 이미지롤오버 + 클릭 탭 네비게이션
간단하다면 간단하고 어렵다면 어려워보였던 탭 네비게이션..
이미지롤오버와 더불어 클릭시 탭마다 다른 내용의 테이블이 보여지는 네비게이션을 코딩해보았습니다.
핵심은 태그마다 id값이 들어가고, getElementId로 컨트롤한다는 것..
<!-- 이미지에 이미지맵을 입히고 -->
<img id="popup1" src="images/top1.jpg" width="885" height="784" border="0" usemap="#Map"> <input type="hidden" name="id_tmp" id="id_tmp">
<!-- 롤오버 및 클릭시 페이지변환없이 관련 테이블 내용 보여지는 관련 자바스크립트 -->
<script>
function click_start(id) {
document.getElementById('id_tmp').value = id;
//롤오버 정보 초기화
for(var i=1; i<6; i++ )
{
document.getElementById('btn'+i).src='images/btn'+i+'.gif'
document.getElementById('btn'+i+'_tb').style.display='none';
}
document.getElementById(id+'_tb').style.display='';
rollOverImg(id);
}
function rollOverImg(id){
document.getElementById(id).src='images/'+id+'r.gif'
}
function rollOutImg(id){
if(document.getElementById('id_tmp').value == id)
return;
else
document.getElementById(id).src='images/'+id+'.gif'
}
</script>
<!-- 네비게이션 탭 테이블 -->
<table width="800" border="0" cellspacing="0" cellpadding="0" style="margin-left:10px;">
<tr>
<td><img id="btn1" src="/promotion/201002/jejutour/images/btn1.gif" width="151" height="30" onMouseOver="rollOverImg(this.id)" onMouseOut="rollOutImg(this.id)" onClick="click_start(this.id)"></td>
<td><img id="btn2" src="/promotion/201002/jejutour/images/btn2.gif" width="151" height="30" onMouseOver="rollOverImg(this.id)" onMouseOut="rollOutImg(this.id)" onClick="click_start(this.id)"></td>
<td><img id="btn3" src="/promotion/201002/jejutour/images/btn3.gif" width="151" height="30" onMouseOver="rollOverImg(this.id)" onMouseOut="rollOutImg(this.id)" onClick="click_start(this.id)"></td>
<td><img id="btn4" src="/promotion/201002/jejutour/images/btn4.gif" width="151" height="30" onMouseOver="rollOverImg(this.id)" onMouseOut="rollOutImg(this.id)" onClick="click_start(this.id)"></td>
<td><img id="btn5" src="/promotion/201002/jejutour/images/btn5.gif" width="151" height="30" onMouseOver="rollOverImg(this.id)" onMouseOut="rollOutImg(this.id)" onClick="click_start(this.id)"></td>
</tr>
</table>
<!-- 실험대상 테이블 -->
<!-- 한 행 tr태그마다 id값을 줘야한다. -->
<table>
<tr id="btn1_tb">
<td>1</td>
</tr>
<tr id="btn2_tb" style="display:none">
<td>2</td>
</tr>
<tr id="btn3_tb" style="display:none">
<td>3</td>
</tr>
<tr id="btn4_tb" style="display:none">
<td>4</td>
</tr>
<tr id="btn5_tb" style="display:none">
<td>5</td>
</tr>
</table>
2010년 1월 27일 수요일
[PHP] 폼메일 전송시 한글 깨짐 현상 해결방법
$charset='UTF-8'; // 문자셋 : UTF-8
$subject=$subject; // 제목
$toName='홍길동'; // 받는이 이름
$toEmail= $to; // 받는이 이메일주소
$fromName=$cok_name; // 보내는이 이름
$fromEmail=$cok_mail; // 보내는이 이메일주소
$body=$content; // 메일내용
$body = iconv('utf-8', 'euc-kr', $body); //본문 내용 UTF-8화
$encoded_subject="=?".$charset."?B?".base64_encode($subject)."?=\n"; // 인코딩된 제목
$to= "\"=?".$charset."?B?".base64_encode($toName)."?=\" <".$toEmail.">" ; // 인코딩된 받는이
$from= "\"=?".$charset."?B?".base64_encode($fromName)."?=\" <".$fromEmail.">" ; // 인코딩된 보내는이
$headers="MIME-Version: 1.0\n".
"Content-Type: text/html; charset=".$charset."; format=flowed\n".
"To: ". $to ."\n".
"From: ".$from."\n".
"Return-Path: ".$from."\n".
"Content-Transfer-Encoding: 8bit\n"; // 헤더 설정
mail( $to , $encoded_subject , $body , $headers ); // 메일 보내기
[자바스크립트] 키입력으로 텍스트박스의 이동
키 입력으로 텍스트 박스를 이동시킬때 쓰는 스크립트
주민등록번호나 전화번호등의 길이가 정해진 텍스트박스에 사용하면 좋을듯.
예제)
사용스크립트)
<script type="text/javascript">
// 숫자만 입력가능
function fn_onlyNum(frm, value) {
if (
(event.keyCode >= 48 && event.keyCode <= 57) ||
(event.keyCode >= 96 && event.keyCode <= 105) ||
(event.keyCode >= 37 && event.keyCode <= 40) ||
event.keyCode == 9 ||
event.keyCode == 8 ||
event.keyCode == 46 || event.keyCode == 109 || event.keyCode == 189
) {
//48-57(0-9)
//96-105(키패드0-9)
//8 : backspace
//46 : delete key
//9 :tab
//37-40 : left, up, right, down
//109,189 : -
event.returnValue = true;
}
else {
//alert('숫자만 입력 가능합니다.');
//frm.value = "";
event.returnValue = false;
}
}
// 숫자와 엔터키만 입력가능
function fn_onlyNumOrEnter(frm, value) {
if (
(event.keyCode >= 48 && event.keyCode <= 57) ||
(event.keyCode >= 96 && event.keyCode <= 105) ||
(event.keyCode >= 37 && event.keyCode <= 40) ||
event.keyCode == 9 ||
event.keyCode == 8 ||
event.keyCode == 46 ||
event.keyCode == 13
) {
//48-57(0-9)
//96-105(키패드0-9)
//8 : backspace
//46 : delete key
//9 :tab
//37-40 : left, up, right, down
event.returnValue = true;
}
else {
//alert('숫자만 입력 가능합니다.');
//frm.value = "";
event.returnValue = false;
}
}
// 텍스트 박스 다음 포커스 이동
function fn_NextFocus(obj_id, targetobj_id, obj_maxlength) {
if (event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 13 && event.keyCode != 46) {
var txtStart = document.getElementById(obj_id);
var txtEnd = document.getElementById(targetobj_id);
if (txtStart.value.length >= obj_maxlength) {
txtEnd.focus();
}
}
}
// 텍스트 박스 이전 포커스 이동
function fn_PreviousFouse(obj_id, targetobj_id) {
var obj = document.getElementById(obj_id);
var target_obj = document.getElementById(targetobj_id);
if (event.keyCode == 8 && obj.value.length == 0) {
target_obj.focus();
target_obj.value = target_obj.value;
}
}
</script>
사용방법)
onkeydown="fn_onlyNum(this, this.value);fn_NextFocus(this.id, 'tbxMinbun2', 6);"
onkeydown="fn_onlyNum(this, this.value);fn_PreviousFouse(this.id, 'tbxMinbun1');"
한글인 경우 써지는 버그가 있다. 그럴경우엔 이걸 넣어주면된다.
style="ime-mode:active" 한글모드
style="ime-mode:inactive" 영문모드
style="ime-mode:disabled" 오직영문모드