2월, 2009의 게시물 표시

삭제

prototype 을 이용해 select box 채우기

간단한 예이다. 우선 ajax로 요청한 결과이다.(json type이다) getAllRecords.htm?view=json [code js] {  records:[        { key1: "val11", key2 : "val21"},        { key1: "val12", key2 : "val22"},        { key1: "val13", key2 : "val23"},        { key1: "val14", key2 : "val24"},        { key1: "val15", key2 : "val25"}  ] } [/code] getItems.htm?view=json [code js] {  records:[         { key3:"val31"},         { key3:"val31"},         { key3:"val31"},         { key3:"val31"}  ] } [/code] js파일 : foo.js [code js] function foo1(){       new Ajax.Request('getAllRecodrds.htm?view=json',{             method : 'get',             onSuccess: function (transport) {                   var mysel = $('mysel');                   var res = transport.responseText.evalJSON();                   res.records.each(function(r){                         mysel.appendChild(

prototype.js invoke 사용시 user-defined 함수 호출방법[2]

이전 글에 이어서 하나더.... Element 배열에서 invoke 호출시에는 이전글처럼 String을 확장한다고해서 동작하지 않는다. Element 객체는 addMethods라는 놈이 있어서 이걸 사용하면된다. [code js] Element.addMethods(       updateOdd : function(element){             if( 어쩌고 저쩌고 ) {                   element.update('저쩌고 어쩌고');             }       } ); [/code] prototype utility method 를 확장할려고 해봤으나 잠깐 좌절하고 퇴근하였다. (회사망이 내부망이라 기억나는대로 블로깅하기때문에 오타가 있을수 있습니다)

prototype.js invoke 사용시 user-defined 함수 호출방법

실력 형편없어 4시간정도 삽질을 했다. [code js] function addSharp(s){       return '#'+s; } var color = ['00FF00','FFFFAA','AADDEE']; var rs = color.invoke('addSharp').join(','); [/code] 동작하지 않을것이다. 기본적으로 prototype api에도 substring이나 toUpperString 같은 함수만 예제로 나와있다. 직접 정의해서 해보면 급하게 실망하고 구글링하다 여기 들어오셨을 분들이 많을것같다.(-.-ㅋ 별문제없이 해결하시는 고수분도 있으시겠지만....) [code js] Object.extend(String.prototype, {       addSharp : function(el){             return '#'+this;       } } ); [/code] addSharp함수를 위와 같이 정의 해주면 된다. (보시는분중에 인자로 받은 el은 어떻게 되느냐? 하시는 분이 있을텐데, 아무값도 넘어오지 않는다. 저기도 삽질 포인트이다. prototype.js를 열어봤으나 아직하수라 정확히 이해 못했으므로 패스) 위 구문은 아래와 같이 해도 잘 동작한다. ( 혹자는 위 구문이 더 객체지향적이라한다. 하지만 아래구문도 직관적이라 별 차이 없는것 같다.) [code js] String.prototype.addSharp = function(e){       return '#'+this.; } [/code]  

Prototype.js 이용한 table 꾸미기

이미 알만한 분들은 다 안다는 prototype이다. 이미 prototype을 이용한 라이브러리들이 많은데 정리차원에서 간단한 예제하나 올려본다. [code html] <html>  <head>   <script src="prototype-1.6.0.3.js"></script>   <style>    .f1{     border: 1px solid;    }    . odd {     background-color: #EEE;    }   </style>  </head>  <body>   <table class="f1">    <tr>     <td>hello</td>     <td>hi</td>    </tr>    <tr>     <td>hellor2</td>     <td>hir22</td>    </tr>    <tr>     <td>hello</td>     <td>hi</td>    </tr>    <tr>     <td>hello</td>     <td>hi</td>    </tr>   </table>  </body>  <script>   $$('tr:nth-child(odd)').each(function(r){   r.className = "odd"  });  </script> </html> [/code] 본인이 생각하기 짧고 굻은 예제라 믿는다. prototype의 $$을 사용해 CSS3 셀렉터로 홀수행의 tr에 odd 스타일 클래스를 지정해준다. 단 한줄로 테이블 홀수행을

Extjs

작년에 Extjs 라는 자바스크립 프래임웍을 사용보았다. 처음 익숙해 지는데 시간이 꽤 걸린것 같다. 아직 자바스크립트 초보라 그런듯하다. 주로 JSON형식으로 object들을 생성하며 처음 익힐땐 꼭 예제를 보고 따라하기 바란다. 자신만만하게 API보고 해봤다가는 날밤까기 일수다. 아마 가장 많이 하는 실수가 configuration때 , (콤마) 를 마지막에 넣어서 일것이다. 화면에 아무것도 나오지 않는다. 하지만 파폭에서는 정상적으로 실행된다. 한글자료가 별로 없기때문에 사용하기 까다롭지만 API를 잘 보면 약간 부실해도 설명이 되어있다.(물론 영어로) 영어가 짧아서 더 힘들었던것 같다. 백문이 불여일견이라 혹시나 궁금한 분들은 예제들을 한번둘러보길 바란다. http://extjs.com 처음 시작하는 분은 먼저 ext 관련 js 파일들을 웹페이지에 불러주고 예제처럼 자신의 js파일을 만들어 추가한다. [code html] <script type="text/javascript" src="extjs/ext-core.js"></script> <script type="text/javascript" src="extjs/ext-all.js"></script> <!-- 등등 ... 그리고, 자신의 js 파일 추가 --> <script type="text/javascript" src="custom/myGrid.js"></script> [/code] myGrid.js 는 [code js] Ext.onReady(function(){    // create the example data store     var store = new Ext.data.SimpleStore({         fields: [            {name: 'company'},           

무심코 넘기기 쉬운 위험한 증세들

원문 주소 : http://kr.blog.yahoo.com/health_blog/9136?c=11 다음은 무시하고 넘길 경우 생명이 위험할 수도 있는 10가지 증상들이다. (미국 Mayo Clinic 제공) 1. 이유 없는 체중 감소 체중 감소는 대부분 좋은 일이라고 생각한다. 그러나, 별다른 이유 없이, 다이어트 노력 없이, 체중이 크게 감소한다면 바로 병원을 찾아야 한다. 기준은 한달 안에 체중의 5%가 빠지거나, 12개월 안에 체중의 10%가 빠지는 경우다. 원인은 갑상선 이상, 우울증, 간 질환, 암, 장내 신진대사 이상일 수 있다. 2. 지속적인 열 기준은 섭씨 38의 체온이 지속되는 경우다. 이는 여러 가지 요인의 감염-염증, 임파종, 면역 억제제 때문일 수 있다. 항암 치료 같은 화학 요법을 받고 있는 중이라면 특별한 이상이 아닐 수 있다. 3. 호흡 곤란 일반적인 코 막힘이나 지나친 운동에 의한 호흡 곤란이 아니라면 이는 건강의 분명한 적신호다. 만성 폐쇄성 폐질환, 고질적 기관지염, 천식, 심장 이상, 정신적 쇼크, 폐렴, 폐 혈전, 폐 섬유증, 폐 고혈압 등이 원인이다. 특히 가만히 앉아 있는데 호흡 곤란 증세가 온다면 그 즉시 병원을 찾아야 한다. 4. 배변 이상 이유없이 배변에 이상이 왔다면 캄필로박터, 혹은 살로넬라 같은 박테리아 감염이거나, 기생충 감염일 수도 있다. 혹은 염증성 대장 질환, 혹은 대장암일수도 있다. 전문가들은 다음과 같은 증상이 나타날 때 반드시 병원을 찾아야 한다고 말한다. - 이틀 이상 지속되는 극심한 설사 - 일주일 이상 지속되는 약한 설사 - 2주 이상 지속되는 변비 - 이상하도록 갑작스러운 배변욕구 - 혈변 - 검거나, 혹은 찐득한 변 5. 정신적 이상 사람이 경우에 따라 갑자기 성격이나 행동, 사고 방식이 뒤바뀌는 경우가 있다. 이는 감염, 뇌 부상, 뇌졸중, 혹은 저혈압의 영향일 수 있다. 아니면 복용하는 약의 부작용일 수도 있다. (이