おっと、こんなのを探していたところでした・・・
階層的なdivをツリービュー風に変換してしまうjQueryプラグイン「Arborescence.js」:phpspot開発日誌.
しかし、記事中のArborescence.jsのリンク先が現在
「The plugins site is currently unavailable.」
となっていて見ることが出来ません。
後日あらためて・・・
おっと、こんなのを探していたところでした・・・
階層的なdivをツリービュー風に変換してしまうjQueryプラグイン「Arborescence.js」:phpspot開発日誌.
しかし、記事中のArborescence.jsのリンク先が現在
「The plugins site is currently unavailable.」
となっていて見ることが出来ません。
後日あらためて・・・
タイトルの日本語おかしいかな・・・
検索に引っかかる用ですのでお気になさらず。
単純な例(ポストされたリクエストを確認)
[php]
・
・
・
// ロガーとか作ってあると仮定します。
// CodeIgniterでのログ出力
log_message(‘debug’, var_export($_POST,true));
// Log4php でのログ出力
$logger->debug(var_export($_POST,true));
[/php]
これでOKです。
var_dump で出力される文字列部分だけなら
var_export で取得できるってことですね。
いやぁーーーー
すばらしいものを提供されている方がいらっしゃってとても助かっています。
これです。
↓↓↓
どんなフォームにも使えるjQueryのフォームバリデーション exValidation
エラー項目にはバルーン表示でエラー通知してくれるというナウい(死語)もの。
このexValidationを利用して開発中のフォームに当てはめてみたんですが・・・
あ、この条件下では・・・ここは必須で・・・で、こうするとこの項目自体見えなくなって・・・・っていう感じになってしまい
なにをどーして良いのやら・・・という風になってしまいました。
そこで、いろいろ試しに試して出来たのがこのサンプルです。
まず、御覧頂いて・・・っと
このフォームは下記のような動作をするものです。
1.まずはユーザーに区分を入力してもらう
2.入力してもらった区分によって異なる項目のフォームを表示する
3.項目の中にはある項目が特定の値のときだけ必須になるというものも存在する
このような場合にどうしたか・・・ということをご紹介します。
まず、サンプルの構造は下記のようになっています。
———————————————————————-
[切り替え] これ自体が必須項目でもあります。
[項目群1] 切り替えが「20歳未満」の時に表示されるフォーム
[項目群2] 切り替えが「20歳以上」の時に表示されるフォーム
———————————————————————-
[html]
・
・
・
<select id="sel" name="sel" onchange="changeDiv(this)">
<option value="">–</option>
<option value="1">20歳未満のお客様</option>
<option value="2">20歳以上のお客様</option>
</select>
・
<!– 20歳未満のお客様用項目 –>
<div id="scene1">
・
・
・
</div>
<!– 20歳以上のお客様用項目 –>
<div id="scene2">
・
・
・
</div>
[/html]
で、JavaScriptはこんな感じ
[html]
// 初期にフォームの分岐を非表示にする
$(document).ready(function() {
$("div[id*=scene]").css("display", "none");
});
// Validationの初期設定
$(function(){
var validation = $("form")
.exValidation({
rules: {
sel: "chkrequired",
name: "chkrequired",
name_: "laterCall",
・
・
・
},
stepValidation: true,
errTipCloseBtn: false,
errHoverHide: true,
scrollToErr: true
});
// イベントリスナー
$(‘input.laterCall’).click(function() {
validation.laterCall(‘#’ + this.id.replace(‘_’,”));
});
$(‘input[name=sake]’).change(function() {
changeSakeItem();
validation.laterCall(‘#sake_kind’);
});
// 一度動作し初期化する
changeDiv(document.getElementById(‘sel’));
});
// お酒を飲むかどうかで必須項目チェンジ
function changeSakeItem() {
clearErrors();
// alert($(‘input[name=sake]:checked’).val());
if ($(‘input[name=sake]:checked’).val() != "1") {
$(‘#sake_kind’).attr(‘class’, ”);
} else {
$(‘#sake_kind’).attr(‘class’, ‘chkrequired’);
}
}
// エラー削除
function clearErrors() {
// 表示されているエラーをフェイドアウト
$("div[id*=err_]").fadeOut();
}
// ユーザ区分変更
function changeDiv(elem) {
clearErrors();
var accNo = 0;
if (elem != null && elem.value =="1") {
accNo = 1;
} else if (elem == null || elem.value.length == 0) {
// N/A
accNo = 0;
} else {
accNo = 2;
}
$("div[id*=scene]").css("display", "none");
if (accNo > 0) {
$("div#scene"+accNo).css("display", "block");
}
// まずは必須項目チェック全外し
$(‘#name’).removeClass(‘chkrequired’);
$(‘#kana’).removeClass(‘chkrequired’);
$(‘#email’).removeClass(‘chkrequired’);
$(‘#birthday’).removeClass(‘chkrequired’);
// 20歳未満か20歳以上で必須項目条件切り替える
switch (accNo) {
case 1:
$(‘#name’).addClass(‘chkrequired’);
$(‘#kana’).addClass(‘chkrequired’);
$(‘#email’).addClass(‘chkrequired’);
break;
case 2:
$(‘#birthday’).addClass(‘chkrequired’);
break;
}
clearErrors();
}
[/html]
こんな感じの実装で出来ました。
要するに「class=chkrequired」っていうのを外せば必須項目にならないし
なんでもない項目に「class=chkrequired」を乗っけてあげればその時点から必須項目になります。
サンプルで「20歳以上」にしてから「飲む」を選択すると「お飲みになる種類」が必須になる・・・という感じです。
こちらからダウンロード出来るようにしておきましたのでご自由にご利用ください。
コメントいただけるとありがたいです。
「SQL・・・わすれたころに また悩む」
さとう 心の一句
結構重宝しそうなこんなテクニックをご紹介↓↓
複数行返ってくるサブクエリを文字列に連結して取得するSQLまとめ – hikky nikky.
えっと、結構ちゃんと正規化してるテーブル構成だといろんなところに派生しちゃってある項目は複数返ってきちゃって・・・でも一行に表示しなくちゃいけなくて・・・
みたいなときにやっちゃう技。
MySQL版は意外に簡単ですね。
以前、Oracleでやったことがあるんですが、無理やりっちゅう感じです。
XMLにして文字列操作してゴニョゴニョ・・・・
でも、覚えていて損はないSQLです。
WordPressにFacebookをつなぐプラグインいろいろ
このブログにもComments入れてみようかな・・・
誰か書き込んでくれるだろうか・・・
とりあえずやってみたい!
Google Chromeってなにげにキャッシュがきついので
テスト等で結構困ってたんですが、キャッシュをオフにする方法があったのでご紹介します。
こちらの記事のとおりなんですが
「右下にアイコン」あたりがはじめ「?」だったので補足的にちょっと説明します。
まず、Chromeの右上にある「レンチマーク」をクリックし
「ツール」→「デベロッパーツール」をクリックしていきます。
そして右下の「ギアアイコン」が表示されるのでそれをクリックし表示される画面・・・
にて「Network」の「Disable cache」をチェックする。
という流れです。
これで爽快かな・・・
とにかく、感謝感謝!助かりました!
仕様書だの設計書だのエクセルにお世話になることが多いくせに毎回忘れてしまい、挙句の果てはGoogle様にお世話になり調べてしまうので備忘録的に掲載します!
▼参考になったサイトはこちら!
ウィンドウ枠の固定をして印刷:Excel エクセルの使い方-印刷.
▼操作手順:行見出し(タイトル)を印刷する
メニュー[ファイル]−[ページ設定]をクリック
↓
[ページ設定]ダイアログ−[シート]タブをクリック
↓
[行のタイトル]欄をクリックしてマウスカーソルがある状態にする
↓
見出しにしたい行をワークシート上で選択
↓
[行のタイトル]欄に見出しにしたい行が表示されたことを確認
※1行目を選択した場合は「$1:$1」と表示されます
↓
[ページ設定]ダイアログ−[OK]ボタンをクリック
ありがとう!エライ人!
ありがとう!Google様!
そして、今度は調べなくて済みますように・・・
WordPressでオリジナルテーマを作る流れがことこまかにわかりやすく面白く書かれています。
WordPressのオリジナルテーマ作成フロー・基本マニュアル
これは保存版です!