Kawa.netxp AjaxZip 2.0 - Ajax�X�֔ԍ����Z���������̓t�H�[���iCGI�s�v�Łj

AjaxZip2�́A��N���J���� �wajax�ȏZ�����̓t�H�[���x �̐V�o�[�W�����ł��B
�X�֔ԍ�����͂���ƁA�Y������s���{�����E�Z���������I�ɓ��͂���܂��B
Ajax�� JSON �t�H�[�}�b�g�𗘗p����JavaScript���C�u�����Ƃ��Č��J���܂����B
JavaScript �݂̂ʼnғ����邽�߁A�T�[�o�T�C�h�ʼnғ�����CGI�v���O�����͕s�v�ł��B
�X�֔ԍ����Z���ϊ������͑S�ăN���C�A���g�T�C�h��JavaScript�ōs���܂��B
���� HTML �̏Z�����̓t�H�[����������3�s���������邾���ŗ��p�ł��܂��B
�ȒP�ɐݒu�ł��邽�߁A�v���O�����ɏڂ����Ȃ����ł��������Ă���������Ǝv���܂��B
�ȉ��̏Z�����̓t�H�[���ɁA7���̗X�֔ԍ�����͂��Ă݂Ă��������B

�y2007/12/09 �NjL�z jQuery �ɂ��Ή����܂����I

�X�֔ԍ�
�s���{��
�s�撬���`�Ԓn
�������`����

�̂Ȃ���́m�X�֔ԍ�����Z���������n�Ƃ������{�^����A ���̃{�^�����ǂ������@�\�������Ă���̂��A �Ƃ��������S�Ҍ����̐����y�[�W���s�v�ɂȂ�܂��B
���̂悤�ɁA�����s�v�̒����I�ȃt�H�[����ʂ������ł���̂�Ajax�̃����b�g�ł��B
�T�[�o��Ƀt�@�C�����A�b�v���[�h���邾���ŗ��p�ł���̂ŁA �X�֔ԍ�����DB�̏��������Ƃ������ʓ|������܂���B Ajax ��v���O�����̒m�����Ȃ����ł��A�������₷���d�g�݂ɂȂ��Ă��܂��B

��AjaxZip2 �ƈꏏ�ɍ�����Z��\�t�g ADDRAjax ���ǂ����B
�s���{�������s�撬����������ƃh�����_�E���ŏZ������������ JavaScript ���C�u�����ł��B

AjaxZip2 �̓����菇

���ɏZ�����̓y�[�W��HTML�t�@�C��������΁AAjaxZip2 �̓����͂ƂĂ��ȒP�ł��B

  1. AjaxZip2���A�[�J�C�u���_�E�����[�h���ēW�J����B
  2. �����̏Z�����̓t�H�[���� HTML �������������B�i������3�s�I�j
  3. HTML �� AjaxZip2 �̑S�t�@�C����FTP�����T�[�o�ɃA�b�v���[�h����B

���ꂾ���̎菇�ŁA�����̏Z�����̓t�H�[�����X�֔ԍ����Z���������̓t�H�[���Ή��iAjax�j�ɂȂ�܂��B
�T�[�o�‹��ɂ��ˑ����܂��񂵁AAjax ��Ή��̋����u���E�U�ŕ���p������킯�ł�����܂���B

1. �_�E�����[�h

AjaxZip2 �͈ȉ�����_�E�����[�h�ł��܂��B

�ꊇ�A�[�J�C�u�F ajaxzip2-20081102.zip ZIP  ���ʏ�p�b�P�[�W�͂�����ł�
�X�֔ԍ����������y�ʔŁF ajaxzip2-20081102-core.zip ZIP  ���v���O�����{�̂̂�
�X�֔ԍ������f�[�^�̂݁F ajaxzip2-20081102-data.zip ZIP  ���f�[�^�X�V�l�ߑւ��p�b�N

�ʏ�́A�ꊇ�A�[�J�C�u���_�E�����[�h���Ă��������B
�_�E�����[�h�����A�[�J�C�u����Aajaxzip2 �t�H���_�����o���܂��B

CodeRepos �� �J�����̃\�[�X�R�[�h �����J���Ă��܂��B

2. HTML �\�[�X�̏�������

�Z�����̓t�H�[��HTML������������ꍇ�́A�ύX�ӏ���3�s�݂̂ł��B
�܂��A<head>�`</head> ���Ɉȉ���2�s��lj����Ă��������B

<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>

�y�[�W���Ŋ��� prototype.js �܂��� jquery.js �̂����ꂩ�𗘗p���Ă���ꍇ�A�lj�����̂� ajaxzip2.js ��1�s�݂̂�OK�ł��B
�Ȃ��Aajaxzip2.js �̕����R�[�h�� UTF-8 �ł����A �Ăяo�����̃t�H�[���̂��� HTML �t�@�C���̕����R�[�h�� Shift_JIS �ł� EUC-JP �ł��\���܂���B

���ɁA�Z�����̓t�H�[����7���X�֔ԍ����͗��� onKeyUp �C�x���g�n���h����o�^���܂��B

<input type="text" name="zip">
      ��
<input type="text" name="zip" onKeyUp="AjaxZip2.zip2addr(this,'pref','addr',null,'addr');">

��2���� 'pref' �ɂ́A�s���{�����I���̃v���_�E���i�܂��̓e�L�X�g���͗����j�� �t�H�[���ϐ������w�肵�܂��B
���l�ɁA��3���� 'addr' �Ɏs�撬�����ȉ��̏Z�����͗��̃t�H�[���ϐ������w�肵�܂��B
�����p�̃t�H�[���ɍ��킹�āA�ύX���Ă����Ă��������B

3. �T�[�o�ɃA�b�v���[�h

1�œW�J����ajaxzip2 �t�H���_�܂邲�ƂƁA 2�ŏ����������Z�����̓t�H�[��HTML�t�@�C�����A �T�[�o��FTP �ȂǂŃA�b�v���[�h���Ă��������B

form.html - �Z�����̓t�H�[��HTML�t�@�C��(�t�@�C�����͔C�ӂł�)
ajaxzip2/ajaxzip2.js - JavaScript���C���v���O����
ajaxzip2/prototype.js - JavaScript���C�u�����iAjax�ʐM�p�j
ajaxzip2/data/zip-001.json - JSON�`���̗X�֔ԍ��f�[�^�i�X�֔ԍ����3�����w001�x�̃G���A�j
      �F
ajaxzip2/data/zip-999.json - ����i�X�֔ԍ����3�����w999�x�̃G���A�j

ajaxzip2/data �t�H���_�ɂ�1,000�߂��t�@�C���������Ă��邽�߁A �A�b�v���[�h�͏������Ԃ�������Ǝv���܂��B
�ȏ�̎菇�Ŋ����t�H�[����Ajax����������A�Z���̎������͂��L���ɂȂ�܂��B

4. JSON �t�@�C���̈ʒu��ύX����ꍇ

�X�֔ԍ������̓����� data �t�H���_�� ajaxzip2 �t�H���_�O�Ɉړ����邱�Ƃ��ł��܂��B �����A�����p�̃T�[�o�ł̃f�B���N�g���\���iJSON�t�@�C���ݒu�ʒu�j��ύX�����ꍇ�́A JavaScript ���P�s�lj����Ă��������B�i�ύX���Ȃ��ꍇ�͒lj��s�v�ł��j

<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>
      ��
<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>
<script>AjaxZip2.JSONDATA = 'ajaxzip2/data';</script>

AjaxZip2.JSONDATA�ϐ��ɁAHTML�t�@�C������data�t�H���_�ւ̑��΃p�X�܂��͐�΃p�X���L�q���Ă��������B �������AXMLHttpRequest �̃Z�L�����e�B�����ɂ��Adata�t�H���_��HTML�t�@�C���Ɠ����h���C����ɐݒu����K�v������܂��B �ʃh���C���̃T�[�o�ɐݒu����data�t�H���_���Q�Ƃ��邱�Ƃ͂ł��܂���B

�T���v��HTML�\�[�X (1) �s���{���v���_�E���^

���ۂ̏Z�����̓t�H�[���̃T���v��HTML�\�[�X�ƁA�f�������Ă݂܂��傤�B

<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>

<form method="POST" action="http://�`">
�X�֔ԍ��F�@��<input type="text" name="zip" size="10" maxlength="8" 
    onKeyUp="AjaxZip2.zip2addr(this,'pref','addr');"><br>
�s���{�����F�@<select name="pref">
<option value="">��</option>
<option value="1">�k�C��</option><option value="2">�X��</option>
<option value="3">��茧</option><option value="4">�{�錧</option>
<option value="5">�H�c��</option><option value="6">�R�`��</option>
<option value="7">������</option><option value="8">��錧</option>
<option value="9">�Ȗ،�</option><option value="10">�Q�n��</option>
<option value="11">��ʌ�</option><option value="12">��t��</option>
<option value="13">�����s</option><option value="14">�_�ސ쌧</option>
<option value="15">�V����</option><option value="16">�x�R��</option>
<option value="17">�ΐ쌧</option><option value="18">���䌧</option>
<option value="19">�R����</option><option value="20">���쌧</option>
<option value="21">�򕌌�</option><option value="22">�É���</option>
<option value="23">���m��</option><option value="24">�O�d��</option>
<option value="25">���ꌧ</option><option value="26">���s�{</option>
<option value="27">���{</option><option value="28">���Ɍ�</option>
<option value="29">�ޗnj�</option><option value="30">�a�̎R��</option>
<option value="31">���挧</option><option value="32">������</option>
<option value="33">���R��</option><option value="34">�L����</option>
<option value="35">�R����</option><option value="36">������</option>
<option value="37">���쌧</option><option value="38">���Q��</option>
<option value="39">���m��</option><option value="40">������</option>
<option value="41">���ꌧ</option><option value="42">���茧</option>
<option value="43">�F�{��</option><option value="44">�啪��</option>
<option value="45">�{�茧</option><option value="46">��������</option>
<option value="47">���ꌧ</option>
</select><br>
�s�撬���`�Ԓn�F�@<input type="text" name="addr" size="60"><br>
</form>

���̃T���v���ł́A�s���{�����̃v���_�E���� value �Ƃ��� JIS �s���{���ԍ����w�肵�Ă��܂����A ���邢�� value �Ƃ��ēs���{�����̃e�L�X�g�����̂܂܎w�肷�邱�Ƃ��”\�ł��B

<option value="1">�k�C��</option>
      ��
<option value="�k�C��">�k�C��</option>

�Ȃ��A�s���{�����́A�v���_�E���`���łȂ��e�L�X�g���͗��Ƃ��Ă������܂��B

�s���{�����F�@<select name="pref">�`</select><br>
      ��
�s���{�����F�@<input type="text" name="pref" size="20"><br>

�������́������炩��BDEMO

�X�֔ԍ��F�@��
�s���{�����F�@
�s�撬���`�Ԓn�F�@

�T���v��HTML�\�[�X (2) �Z�����͗����̌^

�s���{�������Ǝs�撬�������𕪗������ɓ��͗���1�‚ɍ��̂����^�C�v�́A �V���v���ȍ\���̃t�H�[���ł����p�ł��܂��B

<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>

<form method="POST" action="http://�`">
�X�֔ԍ��F�@��<input type="text" name="zip" size="10" maxlength="8" 
    onKeyUp="AjaxZip2.zip2addr(this,'addr','addr');"><br>
���Z���F�@<input type="text" name="addr" size="60"><br>
</form>

�������́������炩��BDEMO

�X�֔ԍ��F�@��
���Z���F�@

�T���v��HTML�\�[�X (3) �X�֔ԍ�3���{4�������^

�X�֔ԍ��L�������A[***]�|[****] �̂悤��3����4����2���ɕ�����Ă����ꍇ�́A
�ϐ����� zip2addr() ���\�b�h�̑�1�����Ƒ�4�����ɂ��ꂼ��w�肵�Ă��������B
��20060925 �łőΉ����܂����B

<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>

<form method="POST" action="http://�`">
�X�֔ԍ��F�@��<input type="text" name="zip1" size="10" maxlength="8">
�| <input type="text" name="zip2" size="10" maxlength="8"
    onKeyUp="AjaxZip2.zip2addr('zip1','addr','addr','zip2');"><br>
���Z���F�@<input type="text" name="addr" size="60"><br>
</form>

�������́������炩��BDEMO

�X�֔ԍ��F�@�� �|
���Z���F�@

�T���v��HTML�\�[�X (4) �t���X�y�b�N�E�t�H�[��

��5�����Œ��ځE�Ԓn�A��6�����Œ��於(�厚)�p�̕ϐ������w��ł��܂��B
AjaxZip2.zip2addr( '����3��', '�s���{��', '�s�撬��', '����4��', '���ڔԒn', '����厚' );
���ۂ̏Z���Ƃ��ẮA�s���{�� �� �s�撬�� �� ����厚 �� ���ڔԒn�A�ƂȂ�܂��B
�d�l�lj��̌o�܂ɂ��A�����̏��Ԃ��߂��Ⴍ����ł��p���������ł��B
�I�u�W�F�N�g���E�v���p�e�B���Ƃ��������Ƃ���ł����A�Ƃ肠�����B

<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>

<form method="POST" action="http://�`">
�X�֔ԍ��F�@
<input type="text" name="zipA" size="10" maxlength="8">
�| <input type="text" name="zipB" size="10" maxlength="8"
    onKeyUp="AjaxZip2.zip2addr('zipA','pref','city','zipB','strt','area');"><br>
�s���{���F�@
<select name="pref"><option value="">��</option>
<option value="1">�k�C��</option><option value="2">�X��</option>
<option value="3">��茧</option><option value="4">�{�錧</option>
<option value="5">�H�c��</option><option value="6">�R�`��</option>
<option value="7">������</option><option value="8">��錧</option>
<option value="9">�Ȗ،�</option><option value="10">�Q�n��</option>
<option value="11">��ʌ�</option><option value="12">��t��</option>
<option value="13">�����s</option><option value="14">�_�ސ쌧</option>
<option value="15">�V����</option><option value="16">�x�R��</option>
<option value="17">�ΐ쌧</option><option value="18">���䌧</option>
<option value="19">�R����</option><option value="20">���쌧</option>
<option value="21">�򕌌�</option><option value="22">�É���</option>
<option value="23">���m��</option><option value="24">�O�d��</option>
<option value="25">���ꌧ</option><option value="26">���s�{</option>
<option value="27">���{</option><option value="28">���Ɍ�</option>
<option value="29">�ޗnj�</option><option value="30">�a�̎R��</option>
<option value="31">���挧</option><option value="32">������</option>
<option value="33">���R��</option><option value="34">�L����</option>
<option value="35">�R����</option><option value="36">������</option>
<option value="37">���쌧</option><option value="38">���Q��</option>
<option value="39">���m��</option><option value="40">������</option>
<option value="41">���ꌧ</option><option value="42">���茧</option>
<option value="43">�F�{��</option><option value="44">�啪��</option>
<option value="45">�{�茧</option><option value="46">��������</option>
<option value="47">���ꌧ</option></select><br>
�s�撬���F�@<input type="text" name="city" size="40"><br>
����(�厚)�F�@<input type="text" name="area" size="40"><br>
�Ԓn�F�@<input type="text" name="strt" size="40"><br>
�������`�����F�@<input type="text" name="rest" size="40"><br>
</form>

�������́������炩��BDEMO

�X�֔ԍ� �|
�s���{��
�s�撬��
����(�厚)
�Ԓn
�������`����

�X�֔ԍ������̃A�b�v�f�[�g�菇

AjaxZip2 �A�[�J�C�u���쐬������ɁA�s���������ȂǂŗX�֔ԍ����ύX����Ă���ꍇ������܂��B
�ŐV�̗X�֔ԍ����� �𗘗p�������ꍇ�́A �ȉ��̎菇�ōŐV�łɃA�b�v�f�[�g�ɃA�b�v�f�[�g�ł��܂��B

$ cd ajaxzip2/work

$ wget http://www.post.japanpost.jp/zipcode/dl/kogaki/lzh/ken_all.lzh
100%[=============================================>] 1,721,445      4.53M/s
17:32:58 (4.52 MB/s) - `ken_all.lzh' saved [1721445/1721445]

$ wget http://www.post.japanpost.jp/zipcode/dl/jigyosyo/lzh/jigyosyo.lzh
100%[=============================================>] 781,802       --.--K/s
17:33:12 (6.73 MB/s) - `jigyosyo.lzh' saved [781802/781802]

$ lha x ken_all.lzh
ken_all.csv     - Melted   :  ooooooooooooooooooooooooooooooooooooooooooooooooooooo

$ lha x jigyosyo.lzh
jigyosyo.csv    - Melted   :  ooooooooooooooooooooooooooooooooooooooooooooooooooo

$ perl csv2jsonzip.pl ken_all.csv jigyosyo.csv
ken_all:        ken_all.csv
�k�C��          .......................................... 8208 lines
�X��          ............. 2495 lines
��茧          .......... 1935 lines
       �i�����j
�{�茧          ..... 875 lines
��������        ........ 1434 lines
���ꌧ          .... 790 lines
jigyosyo:       jigyosyo.csv
�k�C��          ....... 1244 lines
�X��          .. 207 lines
��茧          . 180 lines
       �i�����j
�{�茧          . 169 lines
��������        .. 254 lines
���ꌧ          .. 229 lines
json:           ../data/zip-%s.json
../data/zip-0**.json  .......... 96 files
../data/zip-1**.json  ......... 85 files
../data/zip-2**.json  ......... 90 files
../data/zip-3**.json  .......... 100 files
../data/zip-4**.json  .......... 97 files
../data/zip-5**.json  .......... 98 files
../data/zip-6**.json  .......... 94 files
../data/zip-7**.json  .......... 99 files
../data/zip-8**.json  .......... 100 files
../data/zip-9**.json  .......... 96 files

$ rm -f ken_all.lzh ken_all.csv jigyosyo.lzh jigyosyo.csv

20070128�Łi�o�[�W����2.04�j����́A ���Ə��̌•ʗX�֔ԍ� �ɂ��Ή����Ă��܂��B
���Ə��n�̗X�֔ԍ����s�v�̏ꍇ�́Ajigyosyo.csv �̎w��͕s�v�ł��B
wget �� lha �R�}���h�����p�ł��Ȃ��ꍇ�́A�茳��PC��Mac�‹��ɂ� ken_all.lzh �� jigyosyo.lzh ���_�E�����[�h���āA�������� ken_all.csv �� jigyosyo.csv �t�@�C����W�J������ŁA csv2jsonzip.pl �����s���Ă��������B ���邢�̓T�[�o��łȂ��Ă��AWindows �‹��iActivePerl�j�� Mac OS X �N���C�A���g�ł� csv2jsonzip.pl �͎��s�ł������ł��B

��L Perl �R�}���h�̎��s������ꍇ�́A �z�z�p�b�P�[�W���X�V�����̂����҂����������B
�X�֔ԍ������f�[�^�݂̂̋l�ߑւ��p�b�N�̂����p���֗��ł��B

���C�Z���X�Ƃ��g�p��̒��ӓ_

AjaxZip2 �́A �C�� BSD ���C�Z���X MIT ���C�Z���X �Ƃ��Č��J���܂��B
�l���p�E���p���p���킸�A���R�ɂ����p���������܂��B
�������A�\�[�X���̒��쌠�\���ɂ‚��ẮA�ύX�����ɂ����p���������B
�X�֔ԍ������͓��{�X�����А���̂��̂ł��B�Ĕz�z�͎��R�Ƃ̂��Ƃł��B

�Ȃ��A���g�p�ɂ������āA ���L�� �Ɏ��O�E����ɂ��A�����������K�v�͕K����������܂���B
�Ƃ͂����A�ł���΁A�ꌾ���[�����ł��m�点����������Ɗ������ł��B
����₲�ӌ��Ȃǂ́A�R�����g�� �ւ��肢���܂��B

�X�V����

2007/07/01
�Y�t�̗X�֔ԍ��������ŐV�Łi����19�N6��29���X�V�Łj�ɍX�V���܂����B
��107-6201 �����s�`��ԍ�g�����~�b�h�^�E���h�̃~�b�h�^�E���E�^���[�����V�K�o�^����Ă��܂��B
�Y�t�� Prototype ���C�u���� �� 1.5.1.1 �ɍX�V���܂����B
2007/05/15 (version 2.06)
<input name="pref" type="text"> �ȊO�ł����p�ł���悤�ɂ��܂����B�ihidden��textarea�ɑΉ��j
�Y�t�� Prototype ���C�u���� �� 1.5.1 �ɍX�V���܂����B
�Y�t�̗X�֔ԍ��������ŐV�Łi����19�N4��27���X�V�Łj�ɍX�V���܂����B
2007/04/10
�s�撬�����ƒ��於(�厚)�𕪗��ł���悤�ɁA��6������lj����܂����B
AjaxZip2.zip2addr('zip1','pref','addr','zip2','strt','area');
�̂悤�ɕϐ������w�肵�܂��B
�Y�t�� Prototype ���C�u���� �� 1.4.0��1.5.0 �ɍX�V���܂����B
�X�֔ԍ��������ŐV�Łi����19�N3��3���X�V�Łj�ɍX�V���܂����B
2007/01/28
�e���r�ǂ�V���ЁA�s���@�ւȂǑ�ʂ̗X�֕��������Z���p�� ���Ə��̌•ʗX�֔ԍ� �ɑΉ����܂����B�i��F146-8001�j
AjaxZip2.zip2addr('zip1','pref','addr','zip2','strt');
�̂悤�ɁA��5�������w�肵���ꍇ�́A���ځE�Ԓn�Ȃǂ��擾�ł��܂��B
�������A�•ʂ̎��Ə����� JSON �t�@�C���ɂ͊܂܂�܂���B
�y�[�W���ɕ����̃t�H�[���A���•ϐ����������ꍇ�ɑΉ����܂����B
<form id="��">�`</form> �̂悤�ɁA �K�� form �v�f�ɂ� id �����܂��� name ������t�^���āA��ʂł���悤�ɂ��ĉ������B
2007/01/27
�h�L�������g�̌뎚���C�����܂����B �ithanks to ���J����j
�X�֔ԍ��������ŐV�Łi����18�N12��28���X�V�Łj�ɍX�V���܂����B�v���O�����̕ύX�͂���܂���B
2006/12/15 (version 2.03)
Firefox 2.0 �ł̃J�[�\���ړ����̃G���[�΍�p�b�`��K�p���܂����B �ithanks to �t�H�[�J�X����j
2006/12/12
�z�z�A�[�J�C�u�� JSON/Converter.pm �� JSON/Parser.pm ���Y�t�R�ꂾ�����̂ŁA�lj����܂����B
�v���O�����{�͕̂ύX����܂���B���킹�ėX�֔ԍ��������ŐV�łɍX�V���܂����B
2006/10/23 (version 2.02)
�w8390000�x�ȍ~�̗X�֔ԍ��Ŕ��ǂ��� Opera �̃o�O�ɑΉ��B�ithanks to ���������j
Firefox/Opera �ł́A�X�֔ԍ����͌�Ɏ����I�ɏZ�����Ƀ}�E�X�J�[�\�����ړ�����B�ithanks to �≮�u���O����j
����y�[�W���ɕ����̃t�H�[���������āA�ʂ̃t�H�[���ɓ����X�֔ԍ�����͂����ꍇ�ɑΉ��B
2006/09/28
JSON �t�@�C���̐ݒu�ꏊ��ύX����ꍇ�̐����菇��ύX�B
2006/09/25 (version 2.01)
�X�֔ԍ������f�[�^�݂̂̃A�[�J�C�u���쐬���܂����B (thanks to anonymous����)
�����X�V���Ƀv���O�����{�̂������ւ����ɁA�f�[�^�݂̂̍����ւ��ōς܂��܂��B
�X�֔ԍ��L�������A[***]�|[****] �̂悤��2���ɕ�����Ă���ꍇ�ɑΉ����܂����B
(thanks to jkm����)
2006/09/23 (version 2.00)
1�N�Ԃ�̃A�b�v�f�[�g�B�T�[�o�T�C�h��CGI���s�v�ɂȂ�܂����B
2005/03/19
�O�o�[�W����ajax�ȏZ�����̓t�H�[�����쐬���܂����B

�R�����g�͂������ by AjaxCom

���̑��̃y�[�W�ւ̃����N

���̃y�[�W�ւ̃g���b�N�o�b�N by AjaxTB

�g���b�N�o�b�NURL�� http://www.kawa.net/service/tb/ajaxtb.cgi/works/ajax/ajaxzip2/ajaxzip2.html

Kawa.netxp © Copyright 2006-2009 Kawasaki Yusuke