javascriptでキッチンタイマーを作ってみました。
javascriptでキッチンタイマーを作ってみました。
window.onload = function(){
var para = document.getElementById('area');
var cnt = 0;
(function(){
if( cnt === 180 )alert('end!');
para.innerHTML = cnt++;
setTimeout( arguments.callee, 1000 );
})();
}
cakephpであいまい検索(LIKE検索)をする方法を調べたけど本当にこれで良いの?
cakephpではfindというメソッドにいろいろ引数を渡してDBから結果がとれる。
SELECT user_name FROM users WHERE user_name = 'ムッシュかまやつ';
みたいなSQLとほぼ同じことをやってもらう方法は
$this->User->find( 'all',
array( 'condition' => array(
'user_name' => 'ムッシュかまやつ')
)
);
という感じ。いかにもいろいろなオプションが
渡せそうなfindメソッド(実際いろいろ出来る)
しかし、LIKE検索をしようと思って本で調べてネットで調べてとしたところ、
なかなか方法が出てこない。(cakephp あいまい検索、とか)
唯一出てきた方法が以下のようにfindメソッドを呼び出すというもの
$this->User->find( 'all',
array( 'condition' => array(
'user_name LIKE' => '%' . 'ムッシュかまやつ' . '%')
)
);
ええ? これ本当?
cakephp使用時にでjQueryで$.post()を使おうとしてハマったこと
jQuery.ajax()はオプションとして設定出来る項目が多すぎるので、
引数にオブジェクトを渡して使用する。例えば以下のような感じ
jQuery.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").append(html);
}
});
jQuery.post()は4つの引数をとる。以下のような感じ
jQuery.post(
'post.php',
data,
callbackFn,
'JSON'
);
引数の数が違う。型も違う。
結論から言うとpostメソッドにオブジェクト型の引数を渡していた。
以下のような感じ。
jQuery.post({
url: 'post.php',
data:data,
callback:callbackFn,
type:'JSON'
});
もちろんきちんと動かない。
ただ、firebugが「リクエスト先が存在しない」というエラーをはいてくれず、
かわりにcakephpがレスポンス内に「viewファイルが無いみたいですよ」
というエラーをくれていた。
firebug上でリクエスト先のURLがおかしなことになっていたが、
不慣れなcakephpを使っていたので原因がサーバ側、.htaccessにあると
思いこんでなかなか気がつけなかった。
通信関連のことでハマってるときは、フレームワークうんぬんのせいにしないで、
httpリクエストとレスポンスの内容をきちんと見ないと、ダメ・ダメ。
macでcakephpの環境を作成しているときに.htaccessが表示されなくて変なハマり方をした
macでcakephpの環境を作成しているときにミスをした。
前提としてmacでは「.htaccess」のようにファイルの先頭に
ドット(.)がついているファイル名のファイルはmacは
隠しファイルだと認識する為Finder上で表示されない。
その結果、cakephpの中身を他のディレクトリにコピーする際に
「.htaccess」をコピーし漏らしてしまったため、
cakephpのトップ画面で以下のようなエラー文言が出てしまった。
「URL rewriting is not properly configured on your server. 」
以下のウィジェットを入れてmacで隠しファイルを表示するようにする。
http://www.apple.com/downloads/dashboard/developer/hiddenfiles.html
cakephpのディレクトリ直下に.htaccessが無いことがわかったので
これを補完して一件落着