へろーわーるど

まだPHPやってます。
今日も妄想日記なのです。

集計結果ページのテーブルの表示を JavaScript でオン・オフしようかなとかおもって、試行錯誤してこんなの作ってみた。
.cssファイルに

.ch {display: none;}

を書いておいて、使うページに

var hc = " ch"; //HiddenClass
function Display(id_str, status) {
var o = document.getElementById(id_str);
var search = o.className.indexOf(hc,0);
if( search != -1 ) o.className = o.className.substr(0,search) + o.className.substr(search+3,o.className.length);
if( status == "hidden") o.className = o.className + hc;
}

こんなスクリプトを入れておく。
あとは<input>とか<a>の中に onClick="Display(‘対象ID‘, ‘hiddenか、それ以外‘)" を書いておけば対象のIDを持つセル(オブジェクト)を表示・非表示できる。
テーブルの場合は、その列すべてのセル非表示してやると、あたかも列が消えたように見える。

ちなみに今回始めて知ったことで、セルごとにすべて違うIDを割り当てないとgetElementByIdできないみたい。

あとは

if( status == "hidden") document.getElementById(id_str).style.display = "none";
else document.getElementById(id_str).style.display = "block";

でやってみたんだけど、セルをブロック要素にすると表示がアホになるんですね。

ほかの方法としては、テーブルそのものをJavaScriptで表示させるやり方もあるみたいだけど、メンドクサ。JavaScriptはデバッグが難しいというか良くわからないので、あまり使いたくないところ。

ここまでやっておいて、やっぱり表示・非表示はPHPの方で処理しようかと。

・前回書いた、データを更新型→蓄積型について
蓄積型にすると「各メンバーの最新レコードを、合計でソートする」っていうことがMySQL内のソートだけではできないので、更新型に戻そうかなとか思っている。
蓄積型にする理由は、前回入力した情報を参照するときに便利かと思った。けど、そんなのはCookieで十分そうなんですね。

はい終了。

改めて、日記を見直すと自分でも何かいてるかよく和歌r内

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です