月: 2011年11月

PHP var_dump の出力をログファイルに・・・

投稿者:isc_blog

タイトルの日本語おかしいかな・・・
検索に引っかかる用ですのでお気になさらず。

単純な例(ポストされたリクエストを確認)

[php]


// ロガーとか作ってあると仮定します。

// CodeIgniterでのログ出力
log_message(‘debug’, var_export($_POST,true));

// Log4php でのログ出力
$logger->debug(var_export($_POST,true));
[/php]

これでOKです。
var_dump で出力される文字列部分だけなら
var_export で取得できるってことですね。

参考
PHP: var_export – Manual

2011年11月29日

どんなフォームにも使えるjQueryのフォームバリデーション「exValidation」の複雑な組み合わせサンプル

投稿者:isc_blog

いやぁーーーー
すばらしいものを提供されている方がいらっしゃってとても助かっています。

これです。
↓↓↓
どんなフォームにも使えるjQueryのフォームバリデーション exValidation

エラー項目にはバルーン表示でエラー通知してくれるというナウい(死語)もの。

この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歳以上」にしてから「飲む」を選択すると「お飲みになる種類」が必須になる・・・という感じです。

こちらからダウンロード出来るようにしておきましたのでご自由にご利用ください。
コメントいただけるとありがたいです。

2011年11月25日

複数行返ってくるサブクエリを文字列に連結して取得するSQLまとめ – hikky nikky

投稿者:isc_blog

「SQL・・・わすれたころに また悩む」
 さとう 心の一句

結構重宝しそうなこんなテクニックをご紹介↓↓

複数行返ってくるサブクエリを文字列に連結して取得するSQLまとめ – hikky nikky.

えっと、結構ちゃんと正規化してるテーブル構成だといろんなところに派生しちゃってある項目は複数返ってきちゃって・・・でも一行に表示しなくちゃいけなくて・・・

みたいなときにやっちゃう技。

MySQL版は意外に簡単ですね。
以前、Oracleでやったことがあるんですが、無理やりっちゅう感じです。
XMLにして文字列操作してゴニョゴニョ・・・・

でも、覚えていて損はないSQLです。

2011年11月22日

Social Plugins – Facebook開発者

投稿者:isc_blog

WordPressにFacebookをつなぐプラグインいろいろ

Social Plugins – Facebook開発者.

このブログにもComments入れてみようかな・・・
誰か書き込んでくれるだろうか・・・

とりあえずやってみたい!

(さらに…)

2011年11月19日

Chromeのキャッシュをオフにする方法

投稿者:isc_blog

Google Chromeってなにげにキャッシュがきついので
テスト等で結構困ってたんですが、キャッシュをオフにする方法があったのでご紹介します。

Chromeのキャッシュをオフにする方法 :: 5509.

こちらの記事のとおりなんですが
「右下にアイコン」あたりがはじめ「?」だったので補足的にちょっと説明します。

まず、Chromeの右上にある「レンチマーク」をクリックし
「ツール」→「デベロッパーツール」をクリックしていきます。

そして右下の「ギアアイコン」が表示されるのでそれをクリックし表示される画面・・・

にて「Network」の「Disable cache」をチェックする。

という流れです。

これで爽快かな・・・

とにかく、感謝感謝!助かりました!

2011年11月18日

Excel エクセルでウィンドウ枠の固定をして印刷(ヘッダ固定)

投稿者:isc_blog

仕様書だの設計書だのエクセルにお世話になることが多いくせに毎回忘れてしまい、挙句の果てはGoogle様にお世話になり調べてしまうので備忘録的に掲載します!

▼参考になったサイトはこちら!
ウィンドウ枠の固定をして印刷:Excel エクセルの使い方-印刷.

▼操作手順:行見出し(タイトル)を印刷する
メニュー[ファイル]−[ページ設定]をクリック
 ↓
[ページ設定]ダイアログ−[シート]タブをクリック
 ↓
[行のタイトル]欄をクリックしてマウスカーソルがある状態にする
 ↓
見出しにしたい行をワークシート上で選択
 ↓
[行のタイトル]欄に見出しにしたい行が表示されたことを確認
※1行目を選択した場合は「$1:$1」と表示されます
 ↓
[ページ設定]ダイアログ−[OK]ボタンをクリック

ありがとう!エライ人!
ありがとう!Google様!

そして、今度は調べなくて済みますように・・・

2011年11月16日

ページのどこまで読まれたかを計測する には・・・

投稿者:isc_blog

5年くらい前にとあるマーケティング系のお仕事をされているお客様に言われたことがあった言葉を思い出しました。

「アクセスしてくれたお客様がそのウェブページのどこまで読んでくれたか(スクロールしてくれたか)わかるとすごい助かるんだけど。」

その当時、私に答えはありませんでした。

そんな記憶をたどって何気なく検索したらこんな記事が引っかかりました。

ページのどこまで読まれたかを計測する | Google Analytics アクセス解析.

ふーむ、Google Analyticsを使うのか~

今度試してみよう~!と思ってもなかなか忙しくなっちゃって時間がない現況でございます。

最近、めっきり吸収率が悪くなった気がする・・・ヤダナ。

2011年11月15日