***サーバーアクセス障害 [#x80ddfef]
本当はPM8:40にUPしようとしていた日記だが日付を過ぎてAM8:30に・・・、実に不本意です。
#region(障害報告)
http://mainte.xrea.com/eventview.cgi?host=www.s223.xrea.com
#ref(2010-04-13障害報告.png,nolink)
#endregion()
***[JavaScript][book.inc.php] [#e5b7c062]
プラグインを使って動的なページを作りたい(表示したい)時、つまり検索キーや選択肢によって表示する内容を変える動作をさせる場合なんですが、表示ページの切り替え(全体の再表示)が行われ、やりたい作業専用(サイドにリンクやプチ情報が無い)のページとなります。もちろんこれはこれで殆のケースその後、ページの再表示が必要だったりするので問題ないのですが、中には単純な情報を表示させたいだけでいちいち画面の切替が起きると困ることもあります。そんなことを解決してくれるのはやっぱりJavaScriptかなと調べてみました。&br;
結果、、それなりに期待通りページの一部分を切り替えて表示してくれるものを作れたのですが、今回使用したプラグインはamazonの商品リンクとそこにツールチップな商品紹介を表示する機能を付けていて、このJavaScript通したときにツールチップ商品紹介が表示されない(機能しない)状態となり、私としては微妙な感じになってしまいました。&br;
//cut
#geshi(javascript,number){{{{
<script type="text/javascript">
<!--
var xml;
function loadItem0(data)
{
data = encodeURIComponent(data);//空白が入った場合のURLエンコード対策
if(window.XMLHttpRequest){ //ie以外のブラウザ用(ieが対応してれば問題無し
xml = new XMLHttpRequest()
} else if(window.ActiveXObject){ //ie用
try {
xml = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xml = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xml = null;
}
}
} else {
xml = null;
}
xml.onreadystatechange = chk0;
xml.open("POST",
"http://taru.s223.xrea.com/index.php?plugin=book&mode=search&file=load&keyword="
+ data, true);
//GET or POST
xml.send(null);
}
function chk0(){
if (xml.readyState == 4 && xml.status == 200){
var item = document.getElementById("book_item0");
item.innerHTML = xml.responseText;
}
}
//-->
</script>
<form name="book_form0">
<input name="keyword"
value=""
title="検索のヒントとなる文字を入力してください"
type="text">
<input name="execution"
value="検索"
title="検索のヒントとなる文字を入力してください"
onclick="loadItem0(document.book_form0.keyword.value)"
type="button">
</form>
<div id="book_item0"></div>
}}}}
まぁ実際は他にもPHPコードがあっちゃこっちゃに入っていて処理によって内容を変更していますが、概ねこんな感じです。参考にした全てのサイトが取り出すデーターをファイルとしていたので、プラグインの出力はファイル(ダウンロード)に偽装していますが、通常ページも表示したので、そこら辺はこだわらなくていいようです。&br;
&br;
#legend(下は実際に動作させたサンプルです。){{{
#book(mode=search,form=script)
#book(mode=lookup,form=script)
&br;
下のリストボックスは管理者の確認用です。((selectのoptionデーターはPHP側でURLエンコードしています。これは空白文字を含んだ場合、処理中に「+」変換して渡されるためPHPで受け取ったときエラーとなります。))
#book(mode=key_file,form=script)
}}}