ファイル名検索

findObj = new Object();
// ファイル一覧情報を読み込み
window.onload = function() {
// カレントディレクトリ以下のファイル一覧を取得する
new Ajax.Request("find.cgi?cache="+(new Date()).getTime(), {
method:"get",
onSuccess:function(httpObj) {
var temp = httpObj.responseText;
var LF = String.fromCharCode(10);
findObj.fileList = temp.split(LF);
findObj.fileList.pop();
$("findfilename").disabled = false;
$("findfilename").focus();
$("result").innerHTML = "読み込み完了";
setTimeout("findObj.find()",250);
}
});
findObj.oldKeyword = "dummy";
$("ajaxForm").onsubmit = function(){ return false; }
}
// 検索処理を追加
findObj.find = function() {
var i, keyword = $F("findfilename");
if (findObj.oldKeyword != keyword) {
findObj.oldKeyword = keyword;
var resultList = "";
for (i=0; i<findObj.fileList.length; i++) {
try {
var ReObj = new RegExp(keyword,"gi");
if (findObj.fileList[i].match(ReObj)) {
resultList += "<a href='"+findObj.fileList[i]+"' target='pageData'>"+findObj.fileList[i]+"</a><br>";
}
}catch(e){ }
}
// 該当ファイルがなかった場合には全ファイルを表示
if (keyword == "") {
var resultList = "";
for (i=0; i<findObj.fileList.length; i++) {
resultList += "<a href='"+findObj.fileList[i]+"' target='pageData'>"+findObj.fileList[i]+"</a><br>";
}
}
$("result").innerHTML = resultList;
}
setTimeout("findObj.find()",250);
}

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