上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
通称BOSSプレイ

BOSSplay.gzr


これはひどい。
スポンサーサイト
仕様が定まらず迷走しているこのシリーズ。既に私のDOM操作練習台と化している感もあります。

table2sql_2

目の前のDB.tableに合わせたコードは書けそうなんですが、ライブラリ化してDB.tableから自動でHTML.tableへ落とし込むようするには、私の力量(と時間)が足りなさそうな予感が。

●insert機能の追加//今ここ
・prototype.jsの再追加、saveは非同期で行う
・ソート機能を直す

・データ型に合った入力方式を選択可能にする(textbox以外の何か)//やるか不明
・主キー重複エラー等のチェック機能//やるか不明

・table2sql.phpの作成
ソート機能が壊れたまま続いているこのシリーズ。タイトルを変更しました。

table2sql

●delete機能の追加//今ここ
・insert機能の追加
・データ型に合った入力方式を選択可能にする(textbox以外の何か)
・主キー重複エラー等のチェック機能
・ソート機能を直す
・table2sql.phpの作成
タイトルを変更しました。さすがにあれなのでprototype.jsは外しました。

UpdatedTable

普通こういう場合はpostを使うと思うんですが、サンプルなのでURLで見えるようにgetにしています。

作りながら気が付いたんですが、単純なtextboxでDBのデータを更新させるのはまずいですね。サーバ側での入力値チェックは当然するとしても、所謂DBに入れるようなデータにExcelライクな入力方式は微妙な気がしてきました。いっそtableのセルにselectboxやらチェックボックスでも入力できるようにする?

●save_field内で送信用hiddenフォームを生成//今ここ
・selectedtable.js同様にtableにclass="updated"と指定するだけで上記機能が利用できるようにする//中止
・ソート機能を直す
・自動でUpdatedTableを生成するPHPスクリプトの作成
UpdatedTable

改造と言いつつ、sortedtable.jsには何の手も加えていません。一見、ショートカット記法のためだけにprototype.jsを使っているかのように見えますが、その通りです。

●テーブルのセルクリックで値の編集//今ここ
・save_field内で送信用hiddenフォームを生成
・selectedtable.js同様にtableにclass="updated"と指定するだけで上記機能が利用できるようにする
・自動でUpdatedTableを生成するPHPスクリプトの作成
php Free Chat

demo

ライセンスはLGPL

Ajaxを利用し、IRCとIMを足して二で割ったようなインターフェースのPHP産チャットシステムです。どうやら0.8から日本語メッセージに対応していた模様。ありがとうありがとう、Jokagiさん。

使い方はdemoの所にサンプルコードがあるので、それを見てもらうのが一番早いと思います。

日本語を使う場合は、src/phpfreechat.class.phpを取り込んだ後に$params["language"] = "ja_JP";です。その他もろもろの設定はsrc/phpfreechatconfig.class.phpかこの辺りを読めば分かると思います。

見た目を手軽に変えられるテーマ機能もあるみたいなんですが、themesフォルダ以下に入っているテーマはdefault以外空っぽのような気がするんですが、何か私が勘違いしてるんでしょうか。

ログ等はDBではなく、dataフォルダ以下にタブ区切りのテキストファイルで保存されているので、PHPさえ動けば使えます。(この辺りは簡単にDB保存へ書き換えられそうな雰囲気ですが)
SortedTable

demo

ライセンスはCC

主な機能は列のタイトルクリックでのソート、奇数行・偶数行での色分け表示、onMouseoverで行のハイライト表示、onClickで行の選択表示。Aテーブルのある行を選択して、Bテーブルにその行を移動させるような事もできます。

使い方は簡単。Event.jsとSortedTable.jsをページに取り込み、上記機能を組み込みたいtableにclass="sorted"と指定してやるだけ。

以下はSortedTableを用いた単純なサンプル。
SortedTable sample
A列とD列にはnosortを指定しています。
インデントとかがおかしいのは私がおかしいからです。

ドキュメントはこちら。

追加したい機能
DataGridのようにセルをクリックする事で、Excelライクにセルの値を編集できる機能。

・saveボタンを押す事でDBを更新する機能。(別にAjaxでやる必要性は感じない)

・Ctrl+Sでsaveのキーボードショートカット

・Ctrl+Z

・テーブルの行数が増えるとやはり重たくなる+扱いにくくなるので、レコード件数が多い場合は自動で複数タブ(シート)表示にする機能。(一枚目以外のタブをAjaxで読み込む?)

このあたりの機能を追加すればwebアプリのデータ更新(表示)用フォームとして、かなり便利に使い回せそう。上の二つはやるかも。やらないかも。たぶんやる。
prototype.js v1.4.0の使い方

というわけで今頃になってprototype.jsを使い始めました。OOP noobなのでプロトタイプベースとかクラスベースとかその辺りはよく分かりません。そこ等辺はじっくりと。

とりあえず、document.getElementByIdの羅列で般若心経化していたコードがすっきりするのがありがたいです。Ajax(実際はAHAH)関係の機能もこれまでは自前で関数を用意していたのですが、すっぱりとAjax.Requestで書き直しました。

ただ、Firefoxでは何の問題もないのだけれど、IEだとURIエンコードされずにRequestされてる?社員検索・選択のサジェスト機能で引っかかって、とりあえずencodeURIComponent(url)を入れてみたら動くようになった。

Googleサジェストは面白いだけで今一有効性が分からなかったのだけれど、社内アプリでは結構便利な機能です。

紙の帳票からデータを入力せざる得ない作業なんかは、どこの企業でもあるとと思うのですが、データの入力には参加者とか担当者とかの社員IDが必要なのに、帳票の方で書き忘れられていたり、帳票自体にそんな記入欄が無かったりする事もままあります。

そんな時にFuck!Fuck!叫びながら社員IDを探す旅に出かけずに済む。そんな素晴らしい機能です。サジェストは。

サジェスト以外だと、データテーブルの表示(selectboxやinputboxでの検索に反応して表示を変更)や入力値のチェック(DBをかき回さないとできないチェックの類)なんかにはAjax(AHAH)を便利に使わせてもらっています。
久しぶりのGunZリプレイ。Lvが51とかになりました。

TDM(達人ch).gzr



GunZのリプレイファイルは劣化無し(若干不具合による欠損はある)で再生でき、ファイルサイズも通常の動画ファイルに比べると驚異的に小さいのですが、GunZクライアントがインストールされていないと見れないと言う欠点があります。

という事で今回は、リプレイのうち30*3秒だけですが、Google videoでも見れるようにしてみました。


それと、新しい課金服が出たので購入しました。帽子だけ気に入らなかったので、グレイダストセットの帽子単体で別途購入して組み合わせています。

Gunzstart.jpg


というわけでAPよりも見た目を取った装備でのDMリプレイ。

DM(達人ch).gzr

copyright © 2005 The elephant vanishes all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。