Top > diary > 2010-04-13

サーバーアクセス障害 Edit

 本当はPM8:40にUPしようとしていた日記だが日付を過ぎてAM8:30に・・・、実に不本意です。

+  障害報告

[JavaScript][book.inc.php] Edit

 プラグインを使って動的なページを作りたい(表示したい)時、つまり検索キーや選択肢によって表示する内容を変える動作をさせる場合なんですが、表示ページの切り替え(全体の再表示)が行われ、やりたい作業専用(サイドにリンクやプチ情報が無い)のページとなります。もちろんこれはこれで殆のケースその後、ページの再表示が必要だったりするので問題ないのですが、中には単純な情報を表示させたいだけでいちいち画面の切替が起きると困ることもあります。そんなことを解決してくれるのはやっぱりJavaScriptかなと調べてみました。
 結果、、それなりに期待通りページの一部分を切り替えて表示してくれるものを作れたのですが、今回使用したプラグインはamazonの商品リンクとそこにツールチップな商品紹介を表示する機能を付けていて、このJavaScript通したときにツールチップ商品紹介が表示されない(機能しない)状態となり、私としては微妙な感じになってしまいました。

  1. <script type="text/javascript">
  2. <!--
  3. var xml;
  4. function loadItem0(data)
  5. {
  6. data = encodeURIComponent(data);//空白が入った場合のURLエンコード対策
  7. if(window.XMLHttpRequest){ //ie以外のブラウザ用(ieが対応してれば問題無し
  8.         xml = new XMLHttpRequest()
  9. } else if(window.ActiveXObject){ //ie用
  10.         try {
  11.             xml = new ActiveXObject("Msxml2.XMLHTTP");
  12.         } catch (e) {
  13.             try {
  14.                 xml = new ActiveXObject("Microsoft.XMLHTTP");
  15.             } catch (e2) {
  16.                 xml = null;
  17.             }
  18.         }
  19.     } else {
  20.         xml = null;
  21.     }
  22.     xml.onreadystatechange = chk0;
  23.     xml.open("POST",
  24.     "http://taru.s223.xrea.com/index.php?plugin=book&mode=search&file=load&keyword="
  25.     + data, true);
  26.     //GET or POST
  27.  
  28.     xml.send(null);
  29. }
  30. function chk0(){
  31.   if (xml.readyState == 4 && xml.status == 200){
  32.     var item = document.getElementById("book_item0");
  33.     item.innerHTML = xml.responseText;
  34.   }
  35. }
  36. //-->
  37.  
  38. </script>
  39. <form name="book_form0">
  40.  <input name="keyword"
  41.         value=""
  42.         title="検索のヒントとなる文字を入力してください"
  43.         type="text">
  44.   <input name="execution"
  45.         value="検索"
  46.         title="検索のヒントとなる文字を入力してください"
  47.         onclick="loadItem0(document.book_form0.keyword.value)"
  48.         type="button">
  49. </form>
  50. <div id="book_item0"></div>

 まぁ実際は他にもPHPコードがあっちゃこっちゃに入っていて処理によって内容を変更していますが、概ねこんな感じです。参考にした全てのサイトが取り出すデーターをファイルとしていたので、プラグインの出力はファイル(ダウンロード)に偽装していますが、通常ページも表示したので、そこら辺はこだわらなくていいようです。

下は実際に動作させたサンプルです。
検索のヒントとなる文字を入力してください
asinまたはisbn番号を入力する


下のリストボックスは管理者の確認用です。*1

選択した名前のファイルを読み込みます

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes