_onichannn

CakePHP2系の$this->fetch()の使い方。

Cake2系におけるデフォルトレイアウトなどを覗くと$this->fetch(‘css’)だったり$this->fetch(‘content’)といった記述が見つかる。
これは任意の文字列をビューの好きな位置で読み込める関数である。但し変数を渡す側もビューから出ないとエラーになるので注意。
主にビューファイルからレイアウトファイルに変数を渡すときなどに使う。
説明するより流れを見たほうが早いかな。使い方は以下みたいな感じ。

まずはレイアウトファイルの変数を出力したい位置にfetch()関数を記述。

<?php echo $this->fetch('str'); ?>

次に、ビュー側からassign()関数を使って特定のキーに変数を渡す。

<?php $this->assign('str', 'hogehogehoge'); ?>

上記の処理を走らせるとレイアウトのフェッチの位置に「hogehogehoge」が出力される。
主な用途としては、ビューから動的にtitleを書き換えたり、読み込むcss, jsを切り替えたりする用かな。
ほかにもエレメントを直接受け渡したりなど色々と応用も利きそうな感じ。
処理の流れとしては、fetch()関数が実行された後にassign()関数を実行しても変数は受け渡されないので注意。必ずassign()、fetch()の順番でなければならない。
またassign()していないビューのソースコードは自動的に$this->fetch(‘content’)にぶち込まれる点も覚えておきたい。実際は大抵この使い方をしてる気がしなくもない。笑

jQueryでセレクトボックスの子要素数をカウントする。

やったときのメモ。下記はclass=”select”のセレクトボックスの要素数を数える際の例。

num = $('.select').children().length;

いじょう。

Javascriptで空白しかない文字列を判別する。

これやろうとする度に調べるのでメモ。

str = '   ';

if(!str.match(/\S/g)){
    // 空だったときの処理を記述
}

jQueryでEnterキーをトリガーに処理を実行する。

メモ。以下はid=”hoge”のinput要素でエンターキーが押下された際に実行される例。

$('#hoge').keypress(function(e){
	if(e.which == 13){
		// 任意の処理
		return false;
	}
});

ココ最近は極力画面繊維したくない病気にかかっているのでAjaxと併せて多用してるなう。

Javascriptでゼロパディング。

メモ。

var int = 5;
var res = ('0' + int).slice(-2);
↓
05

左側にゼロを必要個数分くっつけて必要桁数分までで切り落とすだけ。シンプルだね!

Javascriptで文字列型を数値型に変換する。

メモ。

str = '12345';
var num = parseInt(str, 10);

これでnumの中身は数値型の12345に置き換わる。parseInt()の第2引数の10は10進数という意味。

Javascriptで文字列を指定した区切り文字で分割する。

メモ。

str = '2013-07-13';
res = str.split('-');
console.log(res);
↓
["2013", "07", "13"]

split()関数に区切りたい文字列を指定してあげれば分割して配列にぶち込んでくれる。

Javascriptで月の最終日を求める。

メモ。

function getLastDay(year, month) {
    var date = new Date(year, month, 0);
    return date.getDate();
}

上記の関数に年と月を渡せばその年月の最終日が返却される。
たとえば2013年2月を指定すると28が返される。これは便利。

注意としてint形の値を渡してあげないとエラーを吐くので注意。
PHPとは違って暗黙の型変換がないから意外と戸惑うね。まぁそれが普通なんだけど。