블로그 이미지
Don't Stop
angelyr

Recent Post

Recent Comment

Archive

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday

참고도서 및 사이트

posted by angelyr

아작스 종합정리 링크:http://www.seek-blog.com/41065/14090/240-plugins-jquery.html
jquery grid 네이버검색:http://blog.naver.com/kusaltk?Redirect=Log&logNo=70026986513



ajax과련자료 : http://www.phpletter.com/DOWNLOAD/
에디터/파일업로더/FckEditer와연동/파일매니저/이미지에디터

아래의 메뉴기능을 담고있음
-Ajax File/Image Manager
-AjaxFileUpload Demo
-Ajax Image Editor Beta
-Tinymce Ajax File Manager
-FCKeditor Ajax File/Image Manager
-Jquery Star Rating Plugin
-Ajax Form Builder
-Jquery Catfish Advert




인터넷 음악프로그램/ http://www.stumbleupon.com/demo/#url=http://musicovery.com/index.php?


Jqery 파일업로더 : http://www.pixeline.be/experiments/jqUploader/test.php

[추천]jQuery 멀티파일업로더 : http://www.fyneworks.com/jquery/multiple-file-upload/#tab-Examples

파일업로드 버튼과 폼에 스타일적용:http://www.appelsiini.net/projects/filestyle/demo.html

프로그래시브바:http://digitalbush.com/projects/progress-bar-plugin

폼관련 ==========================================================================

폼빌데이터:http://jquery.bassistance.de/validate/demo/  (폼값채검사)

폼 핼퍼(자동안내문/도움말):http://www.dyve.net/jquery/?autohelp

알파벳/숫자 폼에서사용 통제:http://itgroup.com.ph/alphanumeric/

[추천]인풋박스에 전화번호등으 - 또는 특정문자나 형식을
정해서 기록시킬수있음:http://digitalbush.com/projects/masked-input-plugin


폼스타일 =========================================================================

콤보박스 및 실렉트박스 스타일 사용하기:http://jquery.sanchezsalvador.com/page/jquerycombobox.aspx



[추천]그리드(Live Data Manipulation --> Navigator) :http://trirand.com/jqgrid/jqgrid.html페
http://www.trirand.com/blog/?page_id=5
구매내역등 확인에쓰면 좋음/거래명세서 작성및수정

플랙스그리드:http://webplicity.net/flexigrid/


[강추] 폼서브밋:http://www.malsup.com/jquery/form/#

구글지도 : http://code.handlino.com/wiki/jquery-form

폼 Serialize 전송 : http://envero.org/jlook/

필드값기억시키기:http://www.brainfault.com/demo/pin/

필드플러그인(필드값등구하기):http://www.pengoworks.com/workshop/jquery/field/field.plugin.htm

그리드뷰:http://www.reconstrukt.com/ingrid/example1.html

그리드 일부편집기능:http://www.trirand.com/blog/?page_id=5
텍스트필드에특정값더하고 빼기:http://www.alcoholwang.cn/jquery/jTaggingDemo.htm

채크박스컨트럴:http://www.texotela.co.uk/code/jquery/checkboxes/

채크박스를이미지로:http://kawika.org/jquery/checkbox/

인풋박스값을 마우스드래그로조정:http://www.softwareunity.com/sandbox/JQuerySlider/

날짜입력데이트피커:http://marcgrabanski.com/code/ui-datepicker/

날짜입력(심플):http://kelvinluck.com/assets/jquery/datePicker/v2/demo/

인풋박스에마우스오버시툴팁:http://www.texotela.co.uk/code/jquery/tooltipdemo/

시간자동입력:http://www.oakcitygraphics.com/jquery/clockpick/trunk/ClockPick.cfm

칼라피커:http://acko.net/dev/farbtastic

칼라피커2:http://www.intelliance.fr/jquery/color_picker/

투표점수:http://www.phpletter.com/Demo/Jquery-Star-Rating-Plugin/#

검색자동완성:http://www.pengoworks.com/workshop/jquery/autocomplete.htm

태이블에디터:http://dev.iceburg.net/jquery/tableEditor/demo.php

[추천]프래임편집자동:http://garage.pimentech.net/examples/jquery_jframes/

본문텍스트클릭후편집하기:http://www.appelsiini.net/projects/jeditable/default.html

[추천]차트그리기:http://www.reach1to1.com/sandbox/jquery/jqchart/

테이블소트:http://docs.jquery.com/Plugins/Tablesorter

테이블 에디트:http://joshhundley.com/teditable/index.html

confirm 창(본문등에):http://nadiaspot.com/jquery/confirm/

[추천] confirm 창(레이어):http://trentrichardson.com/Impromptu/index.php

confirm 창(폼테그사용가능):http://www.ericmmartin.com/simplemodal/

프린트:http://www.designerkamal.com/jPrintArea/#

창, 오브젝트사이즈구하기:http://brandonaaron.net/docs/dimensions/#sample-4

이미지등불러오기:http://www.appelsiini.net/projects/lazyload/enabled_fadein.html

쿠키,쿠키로그:http://www.jdempster.com/category/code/jquery/cookiejar/

[추천] 그리드 편집그리드:http://www.sigmawidgets.com/products/sigma_grid/demos/index.html

자동저장:http://ideamill.synaptrixgroup.com/?p=3

쿠키:http://dev.jquery.com/browser/trunk/plugins/cookie/
     http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/

키보드 키로드:http://jshotkeys.googlepages.com/test-static.html

==========================================
extjs grid 한글문서
http://extjs.com/learn/Tutorial:Beginners_DataGrid_Pt1_(Korean)
==========================================
yui-ext : http://www.yui-ext.com/

사용법:http://saillinux.springnote.com/pages/1160792

extjs 디비 연동 저장 편집:http://extjs.com/forum/showthread.php?t=10002

ajax 기본및기타 : http://jacking.x-y.net/tt/tag/extjs?page=3

awt-extjs 예제:http://www.gwt-ext.com/demo/#editableGrid

extjs-grid 찾기예제:http://ido.nl.eu.org/extsamples/

데이터갱신하기 예제및소스:http://blog.naver.com/techbug?Redirect=Log&logNo=150022474128

posted by angelyr

다운로드

 

 

xe (2).vol1.egg

 

xe (2).vol2.egg

 

xe (2).vol3.egg

 

xe (2).vol4.egg

 

posted by angelyr

전용뷰어 보기

  1. <?php
  2.     $today=date('Ymd');
  3.     $file_name="list_".$today.".xls"; // 저장할 파일이름
  4.     header( "Content-type: application/vnd.ms-excel;charset=KSC5601");
  5.     header( "Content-Disposition: attachment; filename=$file_name" );
  6.     header( "Content-Description: PHP4 Generated Data" );
  7.     include "../config/connect.php"// DB 접속 파일
  8.  
  9. echo "<table cellpadding=0 cellspacing=1 border=0 width='100%'>
  10.     <tr class='title01' height='20'>
  11.         <td rowspan='2'>등록No</td>
  12.         <td rowspan='2'>회원명</td>
  13.         <td rowspan='2'>생년월일</td>
  14.         <td rowspan='2'>주소</td>
  15.         <td rowspan='2'>이메일</td>
  16.         <td rowspan='2'>연락처</td>
  17.     </tr>";
  18.  
  19.     ///////////// 전체수 ////////////
  20.     $sql_total="select * from a_intro where i_idx!='' $search";
  21.     $query_total=mysql_query($sql_total);
  22.     $total=mysql_num_rows($query_total);
  23.     ///////////// 전체수 ////////////
  24.     $sql="select * from a_member a inner join a_intro b on a.m_idx=b.i_num where a.m_state='0' $search order by b.i_signdate desc $limit";
  25.     $query=mysql_query($sql);
  26.     if($total>0){
  27.         while($data=mysql_fetch_array($query)){
  28.             echo "<tr class='a_title4' >
  29.                 <td>$data[m_id]</td>
  30.                 <td>$data[m_name]</td>
  31.                 <td>$data[m_sex]</td>
  32.                 <td>$data[m_birth]</td>
  33.                 <td align='left'>$data[m_addr1]  $data[m_addr2]></td>
  34.                 <td align='left'>$data[m_email]</td>
  35.                 <td align='left'>$data[m_htel]</td>
  36.                 </tr>";
  37.         }
  38.     }else{
  39.         echo "<tr><td height='50' align='center' colspan='8'>등록된 사람이 없습니다.</td></tr>";
  40.     }
  41.     echo "</table>";
  42. ?>

     

posted by angelyr
아래 코드 중 1, 2번줄만 추가하면 된다. 

예시로 eval함수를 사용해봤는데 이클립스에서 try/catch문으로 감싸라고 나와 예외처리함

상당히 유용한 녀석인듯 

  1. ScriptEngineManager mgr = new ScriptEngineManager();
  2. ScriptEngine engine = mgr.getEngineByName("javascript");
  3.        
  4. try {
  5.     double g = (double)engine.eval("2+3+1");
  6.     System.out.println(g);
  7. } catch (ScriptException e) {
  8.     // TODO Auto-generated catch block
  9.     e.printStackTrace();
  10. }
※ ScriptEngine을 이용하여 함수를 사용하기 위해서는 "리턴타입"에 주의해야 함.
 
posted by angelyr

round(numeric, length[,function])

Round의 첫번째인자는 numeric 두번째인자는.. 표현하고자하는 자리
부동소수점형 숫자를.. 일정부분잘라서 표현(반올림)해서 나타나게 해주는 함수 입니다.

Select Round(10.5351543,2)
10.5400000
이 출력됩니다.

디스플레이할때, 뒤에 00000이 안붙게 하려면.
str  함수를 사용

 

str함수의 첫번째인자는 numeric 두번째인자는 총 표현범위("." 문자포함) 세번째인자는 소수점자리 몇번째까지 표현하겠느냐하는겁니다
Select str(Round(10.5351543,2),5,2)
Select str(10.5351543,5,2)              -> round() 함수 없이 사용 가능, 자동반올림이 되는 듯

posted by angelyr

파일 스트림 열기 함수

 

fopen (String filename, String mode[bool])

 

 파일을 읽거나 쓰기를 할 경우 파일 경로와 스트림을 연결시키는 함수입니다. 전달인자인 mode값은 r은 읽기만, r+ = 읽기와 쓰기만, w은 쓰기만, w+는 읽기와 쓰기만 가능한 mode입니다. 만약 파일이 없는 경우 0을 리턴합니다.

 

$fileName = "경로";
$handle = fopen($filename, "r"); // 파일열기
$contents = fread($handle, filesize($fileName)); // 파일의 전체 내용 읽기
fclose($handle); // 파일 닫기

 

[버퍼를 이용하는 방법] 

while( !feof($handle) ) {
    $buffer = fgets($handle, 4096); // 엔터가 있는 곳까지 최대 4096byte를 읽어옵니다. 
    echo $buffer;  // 읽은 라인을 출력합니다. 
}

 

posted by angelyr

초대장이 11장 정도있습니다.

필요하신분은

지금 이글이 아닌 다른곳 아무곳에나 댓글남기면서 메일주소도 함께 남겨주세요.^^

좋은 블로그 이웃을 기대합니다.

posted by angelyr

MySQL 테이블에 랜덤한 row를 가져오기 위해서 아래와 같은 질의문을 쓸 수 있습니다. 


1
SELECT name FROM random ORDER BY RAND() LIMIT 1;


하지만 row수가 몇만건이 되면 굉장히 느려지는 방법입니다. 왜냐하면 실제로 EXPLAIN으로 검사해 보면 type이 ALL이기 때문입니다. 전체 row를 스켄하는 방법으로 index보다도 못해서 굉장히 느려집니다. 정말 비추되는 방법이지요. 


그럼 아래처럼 생각할 수 있습니다. 


1
SELECT name FROM random WHERE id = (SELECT CEIL(RAND() * (SELECT MAX(id) FROM random));


이 코드도 문제입니다. EXPLAIN 검사해보면 type이 ALL입니다. 문제는 WHERE절 뒤에 id = (SELECT....)부분이죠. 


결국 최적화를 위해 JOIN을 사용할 수 있습니다. 


1
2
3
4
5
6
SELECT name FROM random JOIN
(SELECT CEIL(RAND() *
(SELECT MAX(id)
FROM random)) AS id
) AS r2
USING (id);


이걸 검사해보면 type이 system, const로 나옵니다. 이렇게 하면 JOIN하는 테이블은 상수(const) 임시테이블로서 나오기 때문에 1개의 row만 비교하는 형태가 되어 system이 되는 겁니다. 


단지 주의할 사항은 MAX(id)라는 것은 Count(*)와는 다르다는 점입니다. 만약 row가 중간에 삭제되는 경우가 아니라면 id가 PK라는 조건내에서 서로 같은 값이 되겠지만 삭제된다면 서로 다른 값입니다. 그뿐 아니라 삭제가 되면 아에 random row를 찾지 못하는 경우도 발생합니다.

posted by angelyr

php와 Javascript를 이용하여 XML 통신을 하는 법은 이미 많은 예시가 있다.
이 글은 공부목적으로 개인적으로 정리한 것이다.

Javascript에 있는 XHR(XMLHttpRequest)를 이용하여 php에서 XML을 동적으로 받는 프로그램을 간단하게 만들었다.

특별히 Javascript에서 XHR을 구현을 위해서는 각종 브라우져마다 다르게 만들어야하는 번거로움이 있어서 나는 prototype.js 라는 Javascript 프레임워크에서 제공하는 XHR 기능을 이용했다.


아주 쉬운 예제이기 때문에 자세한 설명은 생략한다.(사실 귀찮기 때문에.. ㅋ)

index.html (Language : html4strict)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>prototype을 이용한 Ajax 테스트</title>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
    function request(group)
    {
        //alert(group);
        new Ajax.Request(
            "http://192.168.0.200/~jidolstar/testXML.php",
            {
                asynchronous:true,
                method:"get",
                parameters: {"group": group} ,
                onSuccess:function(request)
                {
                    var xmlData = request.responseXML;
                    var members = new Array();
                    var memberNude  = xmlData.getElementsByTagName("member");
                    var nameNode = xmlData.getElementsByTagName("name");
                    var companyNode = xmlData.getElementsByTagName("company");
                    var telnumNode = xmlData.getElementsByTagName("telnum");
                    var memberCount = memberNude.length;
                    for ( i=0; i < memberCount; i++ )
                    {
                        var name    = nameNode[i].childNodes[0].nodeValue;
                        var company = companyNode[i].childNodes[0].nodeValue;
                        var telnum  = telnumNode[i].childNodes[0].nodeValue;
                        members.push( {"name":name, "company":company, "telnum":telnum} );
                    }

                    var str="";
                    for ( i=0; i < members.length; i++ )
                    {
                        str += "<H1>member : " + (i+1) + "</H1>";
                        str += "<div>name : " + members[i].name + "</div>";
                        str += "<div>company : " + members[i].company + "</div>";
                        str += "<div>telnum : " + members[i].telnum + "</div>";
                    }
                    //document.getElementById["divResult").innerHTML = str;
                    $("divResult").innerHTML = str;

                       
                },
                onFailure:function()
                {
                    $("divResult").innerHTML = "실패";
                }
            });
    }

</script>
</head>
<body onload="request(document.frm.groupSelect.value)" >
    <form name="frm">
        <select name="groupSelect" onchange="request(document.frm.groupSelect.value)">
            <option value="1">1 Group</option>
            <option value="2">2 Group</option>
        </select>
    </form>
    <div id="divResult"></div>
</body>
</html>




 

textXML.php (Language : php)
<?php
$group = $_GET[group];
header("Content-type: text/xml;charset=utf-8");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

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

switch($group)
{
    case 1:
        $xml="<members>
                <member>
                    <name>지돌스타</name>
                    <company>wecon</company>
                    <telnum>010-2238-0321</telnum>
                </member>
                <member>
                    <name>mira</name>
                    <company>wecon2</company>
                    <telnum>010-2222-2333</telnum>
                    </member>
                <member>
                    <name>mira</name>
                    <company>wecon2</company>
                    <telnum>010-2222-2333</telnum>
                </member>
            </members>"
;
        break;


    case 2:
        $xml="<members>
                <member>
                    <name>mikoung</name>
                    <company>uranos</company>
                    <telnum>010-233-3333</telnum>
                </member>
                <member>
                    <name>uram</name>
                    <company>uranos2</company>
                    <telnum>010-1111-2323</telnum>
                    </member>
                <member>
                    <name>deokgon</name>
                    <company>uranos3</company>
                    <telnum>010-234-9999</telnum>
                </member>
            </members>"
;

        break;

    default:


        break;
}

echo iconv("CP949","UTF-8", $xml);
?>


PHP에서 inconv("CP949","UTF-8",$xml);은 한글을 UTF-8형태로 전송하기 위한 것이다. 서버에서 UTF-8을 지원하지 않는다면 이렇게 해야한다. 그래야 UTF-8로 보낼시 한글이 깨지지 않는다

posted by angelyr