'분류 전체보기'에 해당되는 글 36건

  1. 2009.01.06 info21c 12개월 결제시 1달 더 연장 받기.
  2. 2008.12.07 미라지폰 M480 관련 사이트
  3. 2008.10.06 Textarea박스에서 탭키 Tab 효과 주기
  4. 2008.07.31 strtotime 버그 인가? 이전달 구하기
  5. 2008.07.17 파일 다운로드 파일
  6. 2008.07.01 [입찰전문사이트 인포21] - 편리한 서류함 관리기능~!
  7. 2008.06.30 dispatchEvent, addEventListener 던지고 받기~
  8. 2008.06.27 Local DB - SQLite 예제
  9. 2008.06.27 페이징
  10. 2008.06.26 화면전환
  11. 2008.02.04 안시 144 산란 과정
  12. 2007.12.05 산메라 체착
  13. 2007.12.05 산메라 부화 후 스폰지로 이동
  14. 2007.11.30 디스커스 산메라 쌍 제착 3
  15. 2007.05.28 입찰정보 사이트 = 인포21c info21c
  16. 2007.02.22 Ajax로 달력 출력

info21c 12개월 결제시 1달 더 연장 받기.

|
이곳으로 접속하여 12달 결제시 1달 더 연장을 해줍니다. :~)



인포로 가기
And

미라지폰 M480 관련 사이트

|
And

Textarea박스에서 탭키 Tab 효과 주기

|

코리아인터넷닷컴에 예제를 응용하여 만들었습니다. -_-V

<HTML>
<HEAD>
<script src="http://prototypejs.org/javascripts/prototype.js" type="text/javascript"></script>
<SCRIPT>
function saveCurrentPos (objTextArea) {
   if (objTextArea.createTextRange)
         objTextArea.currentPos = document.selection.createRange().duplicate();
}

function tab_event(objTextArea){
 var text=' ';
 if(event.keyCode==9 && objTextArea.createTextRange){
  var currentPos = objTextArea.currentPos;
  currentPos.text = currentPos.text.charAt(currentPos.text.length - 1) == ' ' ? text + ' ' : text;

 // Event.stop(event); //Prototype
 /* tab Event 없애기 */
  if(!window.Event){
   var Event = new Object();
  }
  if(event.preventDefault){
   event.preventDefault();
   event.stopPropagation();
  }else{
   event.returnValue = false;
   event.cancelBubble = true;
  }
 }
}

</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="myForm">
<TEXTAREA NAME="myTextArea" ROWS="5" COLS="80" WRAP="soft"
       ONSELECT="saveCurrentPos(this)"
       ONCLICK="saveCurrentPos(this)"
       ONKEYUP="saveCurrentPos(this)"
    onkeydown="tab_event(this.form.myTextArea);"
>
이벤트 테스트~!!!!
</TEXTAREA>

</FORM>
</BODY>
</HTML>

And

strtotime 버그 인가? 이전달 구하기

|
오늘이 2008-07-31일이라 하고
원하는 이전달의 값은 2008-06-01이라고 한다면

아래와 같은경우

date('Y-m-01',strtotime('-1 month'));
는 2008-06-01이 나올거 같지만 2008-07-01이 나온다.. -_-;;

그래서 다시 한게 아래다.. 아래로 하면 착하게 원하는 값이 나온다 ^^

$time = time();
date("Y-m-d",mktime(0,0,0,date('m',$time)-1,1,date('Y',$time)));
And

파일 다운로드 파일

|
$filename = $_SERVER['DOCUMENT_ROOT'].'/파일명';
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Type: application/pdf");
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));
readfile($filename);
And

[입찰전문사이트 인포21] - 편리한 서류함 관리기능~!

|

가장 빠르고 정확한 건설 입찰정보
http://info21c.net/

업계 점유율 25%를 차지하고 있는 info21c 사이트가 새로운 기능을 선보였네요.
기존의 개인서류함을 리뉴얼 하면서 새롭게 <나의폴더> 기능 추가했는데요.
진작에 필요한 기능이었는데 info21c가 젤 먼저 폴더개념을 도입해서 현명하게 풀어낸것 같습니다.

사실 하루에도 몇백건씩 공고가 쏟아지는데
매번 필요한 공고들을 찾아서 개인서류함에 저장을 한다 해도 한계가 있었죠.

원하는 폴더를 만들어서 필요한 공고를 얼마든지 나눠서 관리할 수 있다면 상당히 효율적인것 같습니다.

사이트에 있는 동영상 이용안내 링크 걸어둡니다.
궁금하신 분은 클릭해보삼!

And

dispatchEvent, addEventListener 던지고 받기~

|
던지는곳~
dispatchEvent(new ListEvent(ListEvent.FILTER,sendData, true, false));
이런식으로 던져준다.. 앞에 상수, 뒤에 boolean 2개는 필수닷..

클래스 선언~(com.events.ListEvent)

package com.events
{
  import flash.events.Event;
 
 public class ListEvent extends Event
 {
  public static const FILTER:String = "filter";
 
  public function ListEvent(type:String, data:Array=null, bubbles:Boolean=false, cancelable:Boolean=false){
   super(type, bubbles, cancelable);
   
   item = data;
  }
   public var item:Array;
  }
 }

받는 곳~
import com.events.ListEvent;

   private function load():void{
     connectDB();
     Application.application.systemManager.addEventListener(com.events.ListEvent.FILTER, _filter);
    }
   
   private function _filter(e:com.events.ListEvent):void{
    requestData = e.item;
    selectData();
   }
And

Local DB - SQLite 예제

|

db파일위치때문에 한참 해멨다..
C:\Documents and Settings\BoKi\Application Data\sqlLife\Local Store/


<?xml version="1.0" encoding="utf-8"?>

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="init()"

backgroundColor="0x003030" focusRect="false" layout="vertical">

 

<mx:Script>

 <![CDATA[
  import mx.effects.Fade;

 import mx.controls.List;

 import mx.controls.TextInput;

 import mx.events.DataGridEvent;

 import mx.collections.ArrayCollection;

 import mx.utils.ArrayUtil;

 import mx.controls.Alert;

 import flash.data.SQLConnection;

 import flash.data.SQLResult;

 import flash.data.SQLStatement;

 import flash.events.SQLErrorEvent;

 import flash.events.SQLEvent;

 import mx.events.ListEvent;

 import flash.filesystem.File;


 [Bindable]

 private var resultData:Array;


 private var conn:SQLConnection = new SQLConnection();

 private var selectStmt:SQLStatement =  new SQLStatement();


 private function connectDB():void{

  

// 로컬 데이터베이스 존재 확인 그리고 열려져 있는지 또는 새 테이블 만들기

  var dbFile:File = File.applicationStorageDirectory.resolvePath("aa.db");
  trace(dbFile.nativePath);


  if(dbFile.exists) {

   conn.addEventListener(SQLEvent.OPEN, openHandler);

   conn.open(dbFile);

  }else {

   conn.addEventListener(SQLEvent.OPEN, newDatabaseHandler);

   conn.open(dbFile);

  }

 }


 private function openHandler(event:SQLEvent):void{

   // selectData();

  trace("The database was opened");

 }




// 데이터 가져오기

 private function selectData():void{

  selectStmt.sqlConnection = conn;

  var sql:String = "SELECT * FROM employees";

  selectStmt.text = sql;


  selectStmt.addEventListener(SQLEvent.RESULT, selectHandler);

  selectStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  selectStmt.execute();

 }


 private function selectHandler(event:SQLEvent):void{

  resultData = selectStmt.getResult().data;

 }

 

// 새 테이블 생성하기

 private function newDatabaseHandler(event:SQLEvent):void{

  createTable();

  trace("Table created");

 }


 private function createTable():void{

  var createStmt:SQLStatement =  new SQLStatement();

  createStmt.sqlConnection = conn;

  var sql:String =

  "CREATE TABLE IF NOT EXISTS employees (" +

  "empId INTEGER PRIMARY KEY AUTOINCREMENT, " +

  "firstName TEXT, " +

  "lastName TEXT, " +

  "salary NUMERIC CHECK (salary > 0)" +

  ")";

  createStmt.text = sql;

  createStmt.addEventListener(SQLEvent.RESULT, createTableResult);

  createStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  createStmt.execute();

 }

 

 private function createTableResult(event:SQLEvent):void{

          trace("Employees table created ");

    }


//데이터 삽입


private function insertData():void{

  var insertStmt:SQLStatement =  new SQLStatement();

  insertStmt.sqlConnection = conn;

  var sql:String = "INSERT INTO employees (firstName, lastName, salary) VALUES ('Eric', 'Moon', 80000)"; 

  insertStmt.text = sql;


  insertStmt.addEventListener(SQLEvent.RESULT, insertHandler);

  insertStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  insertStmt.execute();

 }


 private function insertHandler(event:SQLEvent):void{

  trace("INSERT statement succeeded");

  selectData();

 }



// 데이터 삭제

 private function deleteData():void{

  if (resultAC.length >0)


  var empid:int = dg.selectedItem.empId;

   

  var deleteStmt:SQLStatement =  new SQLStatement();

  deleteStmt.sqlConnection = conn;


  var sql:String = "DELETE FROM employees WHERE empID="+empid; 

  deleteStmt.text = sql;


  deleteStmt.addEventListener(SQLEvent.RESULT, deleteHandler);

  deleteStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  deleteStmt.execute();

  resultAC.removeItemAt( dg.selectedIndex);

 }


 private function deleteHandler(event:SQLEvent):void{

  trace("Delete statement succeeded");

  selectData();

 }    





 // 에러 처리

 private function errorHandler(event:SQLErrorEvent):void{

  var errMessage:String;

  errMessage  = "Error code: " + event.error.message  + "\r";
 

  errMessage += "Details   : " + event.error.message  ;

  Alert.show(errMessage);

 }


 private function init():void{

  //stage.displayState = StageDisplayState.FULL_SCREEN;

  connectDB();

 }


// 데이터 업데이트  

  private function updateData():void{

  var updateStmt:SQLStatement =  new SQLStatement();

  updateStmt.sqlConnection = conn;


  var sql:String = "UPDATE employees " +

    "SET firstName = '" +  dg.selectedItem.firstName + "', " +

    "lastName = '" + dg.selectedItem.lastName + "', " +

    "salary = '" + dg.selectedItem.salary + "' " +

    "WHERE empID="+ dg.selectedItem.empId; 


  updateStmt.text = sql;


  updateStmt.addEventListener(SQLEvent.RESULT, updateHandler);

  updateStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  updateStmt.execute();

     }


 private function updateHandler(event:SQLEvent):void{

  trace("Update statement succeeded");

  selectData();

 }

 ]]>

</mx:Script>




<mx:ArrayCollection id="resultAC" source ="{ArrayUtil.toArray(resultData)}" />


<mx:VBox height="100%">


<mx:DataGrid id="dg"  dataProvider="{resultAC}" editable="true" height="100%" width="100%">

<mx:columns>

 <mx:DataGridColumn headerText="Emp ID" dataField="empId"/>

 <mx:DataGridColumn headerText="Last Name" dataField="lastName"/>

 <mx:DataGridColumn headerText="First Name" dataField="firstName"/>

 <mx:DataGridColumn headerText="Salary" dataField="salary"/>

</mx:columns>

</mx:DataGrid>


<mx:HBox width="100%">

 <mx:Button label="Create Table" click="createTable();"/>

 <mx:Button label="Select" click="selectData();"/>

 <mx:Button label="Insert" click="insertData()"/>

 <mx:Button label="Update" click="updateData();"/>

 <mx:Button label="Delete" click="deleteData();"/>

</mx:HBox>

</mx:VBox>

</mx:WindowedApplication>

출처 : http://cafe.naver.com/flexcomponent.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=5203

And

페이징

|

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="load()">
 <mx:Style>

 </mx:Style>
 <mx:Script>
  <![CDATA[
   import mx.events.ItemClickEvent;
   import mx.collections.ArrayCollection;
 
   include "spXML_List.as";
   import  mx.controls.Alert;
   import mx.collections.ArrayCollection;
   import mx.controls.Button;
   
    [Bindable]
   public var nav:ArrayCollection = new ArrayCollection();
   
   private function ClickPrev():void
   {
    var page:int = spXML_List.page;
    if(page <= 1){
     Alert.show('처음 페이지 입니다.');
    }else{
     page-=1;
     spXML_List.page = page;
    }
   }
   
   private function ClickNext():void
   {
    var page:int = spXML_List.page;
    if(page >= spXML_List.total_page){
     Alert.show("마지막 페이지 입니다.");
    }else{
     page+=1;
     spXML_List.page = page;
    }
   }
   
 
   
    private function load():void{
     for(var i:Number = 2; i < 50; i++){
     spXML_List.newElement = <item>
            <num>{i}</num>
            <constnm>민방위 경보시스템 교체,보강조달구매 설치 </constnm>
            <itemcode>통신</itemcode>
            <basic>32,000,000</basic>
            <yega>31,970,640</yega>
            <success>31,493,000</success>
            <spb>98.4156</spb>
            <ypb>-0.0917</ypb>
            <sypb>12.1609</sypb>
            <constdt>08.06.20</constdt>
           </item>;
    } 
     
     pageing(spXML_List.page);

   
    }
   
   
    private function pageing(page:Number):void{
    var p_min:Number = spXML_List.p_min;
    var p_max:Number = spXML_List.p_max;
    var total_page:Number = spXML_List.total_page;
   
    nav.removeAll();        
     
     if(p_min > 1){
      nav.addItem({label:"이전", data:p_min-1, id:"pre"});
     }
     
     //Alert.show(page.toString());
     for(var j:Number = p_min; j <= p_max; j++){
      nav.addItem({label:j, data:j});
     }
     
     if(p_max < total_page){
      nav.addItem({label:"다음", data:p_max+1});
     }
     
     spXML_List.page = page;   
    }
   
    private function navigatePage(event:ItemClickEvent):void{
     var lb:String = event.item.label;
     
     if(lb.indexOf("다음") > -1){
      spXML_List.p_min = event.item.data;
      spXML_List.p_max = event.item.data + 4;
      lb = event.item.data;
     }else if(event.item.id == 'pre'){
      spXML_List.p_min = event.item.data - 4;
      spXML_List.p_max = event.item.data;
      lb = event.item.data;
     }
     
     pageing(Number(lb));
    }
   
    private function N_page(min:int, max:int):void{
     trace(min);
     
    }

    
  ]]>
 </mx:Script>
 



 <mx:Canvas id='listBox' width="80%" borderStyle="solid" backgroundColor="blue" showEffect="Fade" hideEffect="Fade" x="35" y="29">
  <mx:Panel layout="absolute" title="List" width="100%" x="0">
   <mx:DataGrid  width="100%" height="285"
    rowCount="12"
    id="ListGrid"
    dataProvider="{spXML_List.item}"
    horizontalCenter="0"
    fontSize="12"
    fontFamily="Arial"
    >
    <mx:columns>
     <mx:DataGridColumn headerText="번호" dataField="num" width="35" />
     <mx:DataGridColumn headerText="공고명" dataField="constnm" width="300"/>
     <mx:DataGridColumn headerText="업종" dataField="itemcode"/>
     <mx:DataGridColumn headerText="기초금액" dataField="basic"/>
     <mx:DataGridColumn headerText="예정가격" dataField="yega"/>
     <mx:DataGridColumn headerText="1순위 투찰금액" dataField="success"/>
     <mx:DataGridColumn headerText="1순위 기초대비" dataField="spb"/>
     <mx:DataGridColumn headerText="예가/기초" dataField="ypb"/>
     <mx:DataGridColumn headerText="1순위사정율" dataField="sypb"/>
     <mx:DataGridColumn headerText="입찰일" dataField="constdt"/>
    </mx:columns>
   </mx:DataGrid>
 
  
   
  </mx:Panel>
 </mx:Canvas>
 <mx:Text text="Total: {spXML_List.total_page} Page:{spXML_List.page} / {spXML_List.total_page}" fontSize="10" y="35" x="73"/>
 <mx:Button label="Previous" click="ClickPrev()"  x="780" y="32"/><mx:Button label="Next" click="ClickNext()"  x="865" y="32"/>
 
 <mx:ToggleButtonBar id="PageNav"  x="73" y="394" dataProvider="{nav}" itemClick="navigatePage(event)" horizontalGap="5"/>
 
</mx:Application>

-----------------------------------------------------------------------------------------------

as파일

// ActionScript file
[Bindable]

public var spXML_List:XML =
<rr>
 <total_num>49</total_num>
 <total_page>10</total_page>
 <page>1</page>
 <p_min>1</p_min>
 <p_max>5</p_max>
 
 
 <item>
  <num>1</num>
  <constnm>민방위 경보시스템 교체,보강조달구매 설치 </constnm>
  <itemcode>통신</itemcode>
  <basic>32,000,000</basic>
  <yega>31,970,640</yega>
  <success>31,493,000</success>
  <spb>98.4156</spb>
  <ypb>-0.0917</ypb>
  <sypb>12.1609</sypb>
  <constdt>08.06.20</constdt>
 </item>

</rr>;

And

화면전환

|
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
 >
<mx:states>
  <mx:State name="w" >
   <mx:SetProperty target="{left}" name="width" value="400"/>
  </mx:State>
 </mx:states>
 
 <mx:transitions>
  <mx:Transition fromState="*" toState="*">
   <mx:Resize duration="100" target="{left}"/>
  </mx:Transition>
 </mx:transitions>
 
 <mx:Canvas width="100%" height="100%"
  backgroundColor="#eeeeee"
 >
  <mx:VBox width="40" height="100%" id="left" backgroundColor="#ffffff">
   
  </mx:VBox>
  <mx:Button x="{left.x+left.width}"
   click="{
    currentState = currentState==null ? 'w' : null;
    trace(currentState);
   }" />
 </mx:Canvas>
</mx:Application>
And

안시 144 산란 과정

|
1차산란 애들이 모두 죽어나가고.. 2차 산란 애들입니다.
중간중간 몇마리씩 죽어나가다 어느정도 되니 하루에 한마리씩 죽어나갑니다...
개체가 약한건지 수질이 아직 안좋은지는 잘 모르겠는데 이젠 밥도 잘먹고 잘 적응하고있는듯..


※ 이미지 퍼가실땐 출처를 남겨주세요.. : )

이미지를 클릭하셔서 보세요.. 확대됩니다.. ^^




사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지



And

산메라 체착

|
 


산메라 첫 체착 ...
And

산메라 부화 후 스폰지로 이동

|


산메라 쌍입니다.
부화 후 스폰지로 모두 옮겨놨네요.. 암놈이 보살필려고 하는데
숫놈이 자기혼자 보살필려고 계속 막는데 안스럽네요... ㅠ
And

디스커스 산메라 쌍 제착

|
디스커스 산메라 쌍.
'07.10.1 AM 12:50 산메라 입수 (1:30분 물맞댐)
'07.10.23 1차 알붙임 몇일 후 다 따먹음
'07.10.29 2차 알붙임
'07.10.31 알 수정되어서 검해짐
'07.11.01 부화 후 이동시킴 30수정도
'07.11.04 새벽에 체착
'07.11.05 체착 후 적응하지 못한 치어 죽음 대략 15~20수 체착중...

아직 암놈 사이즈가 작고 적응기간중이라서 알을 얼마 못붙여 체착까지 간 치어수도
적어 요번 산란은 포기... ㅠ
다음을 기약하며...

티스토리에서 달력 이벤트를 하여 아래 사진을 공모전에 응모 합니다. ^^

사용자 삽입 이미지


사용자 삽입 이미지
And

입찰정보 사이트 = 인포21c info21c

|

가장 빠르고 정확한 건설 입찰정보 http://info21c.net/

업계 점유율 25%를 차지하고 있는 info21c 사이트가 새로운 기능을 선보였네요.
기존의 개인서류함을 리뉴얼 하면서 새롭게 <나의폴더> 기능 추가했는데요.
진작에 필요한 기능이었는데 info21c가 젤 먼저 폴더개념을 도입해서 현명하게 풀어낸것 같습니다.

사실 하루에도 몇백건씩 공고가 쏟아지는데
매번 필요한 공고들을 찾아서 개인서류함에 저장을 한다 해도 한계가 있었죠.

원하는 폴더를 만들어서 필요한 공고를 얼마든지 나눠서 관리할 수 있다면 상당히 효율적인것 같습니다.

사이트에 있는 동영상 이용안내 링크 걸어둡니다.
궁금하신 분은 클릭해보삼!







가장 빠르고 정확한 건설 입찰정보

http://info21c.net/



사용자 삽입 이미지

입찰정보 사이트중 업계에서 인지도가 1위인 info21c 사이트가 요번에 리뉴얼이 되네요...
위의 사항이 업데이트 된다고 하는데 기대 됩니다~! ^^

And

Ajax로 달력 출력

|

총 4개의 파일로 되어 있습니다.
출력파일, css파일, js파일, php실행파일
달력출력파일에 css,js,php파일을 호출하여 사용하면 됩니다. : )

달력 출력 파일

<form name='x_calendar'>
<input type='hidden' name='xyear' value='<?=date(Y);?>'>
<input type='hidden' name='xmonth' value='<?=date(m);?>'>
</form>
   <?
   echo "<table border='0' cellpadding='5' cellspacing='0' id='t_calendar'>";
   echo "<caption><a href='#' onclick=\"change_calendar('prev',document.x_calendar.xyear.value, document.x_calendar.xmonth.value)\"><</a> <span id='l_year'></span> 년 / <span id='l_month'></span> 월 <a href='#' onclick=\"change_calendar('next',document.x_calendar.xyear.value, document.x_calendar.xmonth.value)\">></a></caption>";
   echo "<tr><td>Sunday</td><td>Monday</td><td>Tuesday</td><td>Wednesday</td><td>Thursday</td><td>Friday</td><td>Saturday</td></tr>";
   echo "</table>";
   ?>
<script>
function change_calendar(division, xyear, xmonth)
{
 AJAX.create();
 AJAX.openXML('POST','statistics_exec.php', true);
 AJAX.setStatusSuccessHandler(calendar_loadData);
 AJAX.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 AJAX.send("division="+division+"&year="+xyear+"&month="+xmonth);
}

 AJAX.create();
 AJAX.openXML('POST','statistics_exec.php', true);
 AJAX.setStatusSuccessHandler(calendar_loadData);
 AJAX.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 AJAX.send(null);
</script>

css 파일

#t_calendar {
  border-collapse:collapse;
  font-size:9pt;
  margin-left: 10px;
}

#t_calendar th { border:1px solid #E6E6E6; background:#D2D2D2; width: 96px;}
#t_calendar td { border:1px solid #E6E6E6;  width: 96px;}


JS파일

var list = new Array();

function calendar_loadData(doc){

 list['start_week'] = doc.getElementsByTagName("start_week");
 list['last_day'] = doc.getElementsByTagName("last_day");
 list['year'] = doc.getElementsByTagName("year");
 list['month'] = doc.getElementsByTagName("month");

 var table = document.getElementById('t_calendar');
 var start_week = list['start_week'][0].firstChild.nodeValue;
 var last_day = list['last_day'][0].firstChild.nodeValue;
 var year = list['year'][0].firstChild.nodeValue;
 var month = list['month'][0].firstChild.nodeValue;
 var ju = 1;
 
 document.getElementById('l_year').innerHTML = year;
 document.getElementById('l_month').innerHTML = month;
 document.x_calendar.xyear.value = year;
 document.x_calendar.xmonth.value = month;
// 열삭제
 for(var i = table.rows.length-1; i > 0; i--){
  table.deleteRow(i);
 }

// 열 생성
 
 //빈셀 생성
 var row = table.insertRow(1);
 for( var i = 0; i < start_week; i++)
 {
  var cell = row.insertCell(i);
  cell.innerHTML = "&nbsp;";
 }
 //셀 생성
 for(var days = 1; days <= last_day; days++)
 {
  if(i%7==0){
   i = 0;
   ju++;
   var row = table.insertRow(ju);
  }
 
  var cell = row.insertCell(i);
  cell.innerHTML = "<sup>"+days+"</sup>";
  i++;
  if(i%7==1)cell.style.color='red';
  if(i%7==0)cell.style.color='blue';
 }
 //빈셀 생성
 while(1){
  if(i%7==0) break;
  var cell = row.insertCell(i);
  cell.innerHTML = "&nbsp;";
  i++;
  if(i%7==0) break;
 }

}

 php파일
<?PHP
 if($division=='prev'){
  $date = date("Y-m-d",mktime(0,0,0,$month-1,1,$year));
 }else if($division=='next'){
  $date = date("Y-m-d",mktime(0,0,0,$month+1,1,$year));
 }else{
  $date = date(Y.'-'.m.'-'.d);
 }

 if( eregi("^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$",$date) ){
  $t = explode("-",$date);
  $year =$t[0];
  $month =$t[1];
  $day =$t[2];
 }else{
  $year = date("Y");
  $month = date("m");
  $day = date("d");
 }

 $timestemp = mktime(0,0,0,$month,1,$year);
 $start_week = date("w",$timestemp);
 $last_day = date("t",$timestemp);
 

header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="utf-8"?>';

 echo'<calendar>';
 echo'<start_week>'.$start_week.'</start_week>';
 echo'<last_day>'.$last_day.'</last_day>';
 echo'<year>'.$year.'</year>';
 echo'<month>'.$month.'</month>';
while($ob = mysql_fetch_object($res)){
 echo'<sum_day>'.$ob->dates.'</sum_day>';
 echo'<sum_ct>'.$ob->ct.'</sum_ct>';
}

 echo'</calendar>';
?>

And
prev | 1 | 2 | next