共有メモプログラム

memoObj = new Object();
// データを登録
memoObj.addData = function() {
var flag = Field.present("userName","userComment");
if (!flag) {
alert("名前または本文に文字が入力されていません");
return false;
}
var dateObj = new Date();
var currentDate = dateObj.getFullYear()+"/"+(dateObj.getMonth()+1)+"/"+dateObj.getDate()+" ";
currentDate += dateObj.getHours()+":"+dateObj.getMinutes()+":"+dateObj.getSeconds();
var data = "nameData="+encodeURIComponent($F("userName"))+"&commentData="+encodeURIComponent($F("userComment"))+"&timeData="+currentDate;
new Ajax.Request("regist.cgi", { method: "post", parameters:data, onComplete:memoObj.getData });
}
// データを取得
memoObj.getData = function() {
var url = "read.cgi?cache="+(new Date()).getTime();
new Ajax.Request(url, { method: "get",
onComplete: function(httpObj) {
var xmlData = httpObj.responseXML;
var itemTag = xmlData.getElementsByTagName("item");
for (var i=0; i<itemTag.length; i++) {
var nameTag = itemTag[i].getElementsByTagName("name");
var noteTag = itemTag[i].getElementsByTagName("note");
var dateTag = itemTag[i].getElementsByTagName("date");
var aName = nameTag[0].firstChild.nodeValue;
var aNote = noteTag[0].firstChild.nodeValue;
var aDate = dateTag[0].firstChild.nodeValue;
windowObj.openWindow(i, aName, aDate, aNote);
}
}
});
$("userComment").focus();
}
// 初期化
window.onload = function() {
$("ajaxForm").onsubmit = function () {
memoObj.addData();
return false;
}
memoObj.getData();
}
// ウィンドウ処理
windowObj = new Object();
windowObj.subwin = new Array();
windowObj.winTop = 150; // 表示するウィンドウの上位置
windowObj.winLeft = 10; // 表示するウィンドウの左位置
windowObj.zIndex = 100; // 表示するウィンドウのZ座標
windowObj.posStepX = 50; // 次に表示するウィンドウのオフセット位置
windowObj.posStepY = 20; // 次に表示するウィンドウのオフセット位置
windowObj.width = 240; // ウィンドウの横幅
windowObj.height = 120; // ウィンドウの縦幅
windowObj.max = 10; // ウィンドウの最大表示数


windowObj.openWindow = function(winNo, aName, aDate, aComment) {
if (!windowObj.subwin[winNo]) {
windowObj.subwin[winNo] = new Window("win"+winNo,
{ className: "dialog",
left:windowObj.winLeft, top:windowObj.winTop,
width:windowObj.width, height:windowObj.height,
zIndex:(windowObj.zIndex+windowObj.max)-windowObj.zIndex++});
}
windowObj.subwin[winNo].getContent().innerHTML = "<b>"+aName+" > "+aDate+"</b><br>"+aComment;
windowObj.subwin[winNo].show();
windowObj.winTop += windowObj.posStepY;
windowObj.winLeft += windowObj.posStepX;
}

・サンプルを実行
・サンプルをダウンロード
Ajax実践テクニック 説明などは本書を参考にしてください。JavaScript以外のソースはデータをダウンロードするか本書を参照してください。