$blank = array_fill_keys( array_keys($this->Model->getColumnTypes()), false );
全部にfalseをいれてみた。newとかでできるのかな?
new $this->Model は過剰だし、objectだし。
getDisplayField()はDBの初期値が入るだけだった。
2009年12月22日火曜日
2009年12月10日木曜日
prototype.js の基本
javascriptの、document.getElementById("id_name")を
$("id_name")と書くことができる。
$("id_name").innerHTML
$("id_name").value
と使ったりする。
これのフォームエレメント版がこれ
$F("form_element")
$("form_element").valueと同じ
checkbox のチェックONは
$F("chkbox_id")では1だったり
$("chkbox_id").checkedはtrueだったりする。
http://www.openspc2.org/JavaScript/Ajax/ref/prototype.js/
$("id_name")と書くことができる。
$("id_name").innerHTML
$("id_name").value
と使ったりする。
これのフォームエレメント版がこれ
$F("form_element")
$("form_element").valueと同じ
checkbox のチェックONは
$F("chkbox_id")では1だったり
$("chkbox_id").checkedはtrueだったりする。
http://www.openspc2.org/JavaScript/Ajax/ref/prototype.js/
CSS button
押下できるイメージボタン
<button style="cursor: pointer; background-color: inherit; border:none;">
<img src="btn.gif" />
</button>
<button style="cursor: pointer; background-color: inherit; border:none;">
<img src="btn.gif" />
</button>
CakePHP SQL Where句
イコール以外のWhere句を書くとき
'conditions' => array(
user_id => $id,
'User.user_age > ' => $age,
'User.name like ' => '%' . $name . '%',
)
dot接続ではなく、矢印接続も可能
'conditions' => array(
user_id => $id,
'User.user_age > ' => $age,
'User.name like ' => '%' . $name . '%',
)
dot接続ではなく、矢印接続も可能
2009年12月7日月曜日
2009年12月3日木曜日
CakePHP コントローラでいろいろOFF
$this->layout = false; // layout off
$this->autoRender = false; // render off
$this->output = false; // output off ?
var $users = array(); // model off
モデルでテーブル無しは
var $useTable = false;
$this->autoRender = false; // render off
$this->output = false; // output off ?
var $users = array(); // model off
モデルでテーブル無しは
var $useTable = false;
2009年12月2日水曜日
Ajax PHP Javascript 配列渡し
function click_addr()
{
var url = '/input_addr';
var params = 'data[tablename][zip_code]=' + $F('zip_code_1');
var myAjax = new Ajax.Request(
url,
{
parameters: params,
onComplete: function(obj) {
res = obj.responseText;
var data = eval("(" + res + ")");
if (data["error"] == "") {
$('address_1').setValue(data["prefecture_code"]);
$('address_2').setValue(data["address_2"]);
$('address_3').setValue(data["address_3"]);
}
}
});
}
{
var url = '/input_addr';
var params = 'data[tablename][zip_code]=' + $F('zip_code_1');
var myAjax = new Ajax.Request(
url,
{
parameters: params,
onComplete: function(obj) {
res = obj.responseText;
var data = eval("(" + res + ")");
if (data["error"] == "") {
$('address_1').setValue(data["prefecture_code"]);
$('address_2').setValue(data["address_2"]);
$('address_3').setValue(data["address_3"]);
}
}
});
}
2009年11月30日月曜日
Prototype Window
ライブラリ
<script type="text/javascript" src="../javascripts/prototype.js"> script> <script type="text/javascript" src="../javascripts/effects.js"> script> <script type="text/javascript" src="../javascripts/window.js"> script>
<script type="text/javascript" src="../javascripts/window_effects.js"> script>
テーマ共通
<link href="../themes/default.css" rel="stylesheet" type="text/css" >link> テーマ
<link href="../themes/alphacube.css" rel="stylesheet" type="text/css" >link>
<script>
function win(event) {
var x = Event.pointerX(event)
var y = Event.pointerY(event)var win = new Window({className: "テーマ", title: "タイトル", width:350, height:400, top: y, left: x}) }
win.show();
win.setAjaxContent(url, {
parameters: prms
});
win.setDestroyOnClose();
</script>
http://prototype-window.xilinus.com/
2009年11月19日木曜日
CakePHP Validate メッセージに変数を入れるとか
var $validate = array(
'password' => array(
'rule1' => array(
'rule' => 'notEmpty',
),
'rule2' => array(
'rule' => array('minLength', '6'),
),
),
'password_confirm' => array(
'rule1' => array(
'rule'=> array('checkCompare'),
),
),
);
function beforeValidate()
{
$this->validate['password']['rule1']['message'] = MESSAGE_1;
$this->validate['password']['rule2']['message'] = MESSAGE_2;
$this->validate['password_confirm']['rule1']['message'] = MESSAGE_3;
}
2009年11月12日木曜日
CakePHP でメール送信
デフォルトのMailコンポーネントでもかなりいいけど。
Qdmailをコンポーネントに入れて使うと、文字化けとか心配しなくていいのがいい。
ついでにQdsmtpをいっしょにComponentに入れると、SMTP送信もすぐできた。
余計な設定が不要なのはナイス。
http://hal456.net/qdmail/smtp
Qdmailをコンポーネントに入れて使うと、文字化けとか心配しなくていいのがいい。
ついでにQdsmtpをいっしょにComponentに入れると、SMTP送信もすぐできた。
余計な設定が不要なのはナイス。
http://hal456.net/qdmail/smtp
2009年11月11日水曜日
Ajax prototype ボタン押してロード中にクルクルするあれ
<div id="update_div"></div>
<div id="loading_img"><img src="kurukuru.gif"></div>
<button type="button" id="a_button">push</button>
Event.observe('a_button', 'click', function(event) {
new Ajax.Updater('update_div', '/update/contents', {onLoading:function(request) {Element.show('loading_img');Element.hide('a_button')}, onComplete:function(request) {Element.show('a_button');Element.hide('loading_img')}, asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'update_div']});
}, false);
<div id="loading_img"><img src="kurukuru.gif"></div>
<button type="button" id="a_button">push</button>
Event.observe('a_button', 'click', function(event) {
new Ajax.Updater('update_div', '/update/contents', {onLoading:function(request) {Element.show('loading_img');Element.hide('a_button')}, onComplete:function(request) {Element.show('a_button');Element.hide('loading_img')}, asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'update_div']});
}, false);
2009年11月9日月曜日
CakePHP のバリデーション
単純にモデルの$validateを使うなら、saveのタイミングでチェックが入る。
しかし、実用的には、このあたりを使うことになる。
か
http://book.cakephp.org/view/410/Validating-Data-from-the-Controller
しかし、実用的には、このあたりを使うことになる。
$this->ModelName->set($this->data);
if ($this->ModelName->validates()) {
// it validated logic
} else {
// didn't validate logic
}
か
if ($this->Model->saveAll($this->data, array('validate' => 'only'))) {
// validates
} else {
// does not validate
}
http://book.cakephp.org/view/410/Validating-Data-from-the-Controller
Google AJAX Libraries API
Ajaxのライブラリを、Googleから読み込む書き方。
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("prototype", "1.6");
google.load("scriptaculous", "1.8.2");
google.load("jquery", "1.3.1");
google.load("jqueryui", "1.5.3");
</script>
http://code.google.com/intl/ja/apis/ajaxlibs/
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("prototype", "1.6");
google.load("scriptaculous", "1.8.2");
google.load("jquery", "1.3.1");
google.load("jqueryui", "1.5.3");
</script>
http://code.google.com/intl/ja/apis/ajaxlibs/
2009年11月8日日曜日
2009年11月6日金曜日
CKEditor
CKEditor。フォームのtextareaに使えるWYSIWYGなエディタ。
CakePHPで使うときは、webrootのjsディレクトリに、全部入れちゃうのが簡単。
Bakeryいまさら感が。貼るだけだからヘルパーとか書く方が冗長。
ツールバー設定できるヘルパーとかなら欲しい!
http://bakery.cakephp.org/articles/view/ckeditor-3-x-new-fckeditor-version
CakePHPで使うときは、webrootのjsディレクトリに、全部入れちゃうのが簡単。
Bakeryいまさら感が。貼るだけだからヘルパーとか書く方が冗長。
ツールバー設定できるヘルパーとかなら欲しい!
http://bakery.cakephp.org/articles/view/ckeditor-3-x-new-fckeditor-version
CakePHP http_socket
CakePHPのhttp_socketが便利だ。
Dead Linkを調べるのに使用した。
$socket->get($url) して、$socket->response['status']['code']が200なら生きてる、みたいな。
ソースみてつかってしまったけど、こういう書き方はダメなんだろうなといつも思いつつ、取れるからいいやで使ってしまう。
参考
http://www.syuhari.jp/blog/archives/825
http://api.cakephp.org/view_source/http-socket/
Dead Linkを調べるのに使用した。
$socket->get($url) して、$socket->response['status']['code']が200なら生きてる、みたいな。
ソースみてつかってしまったけど、こういう書き方はダメなんだろうなといつも思いつつ、取れるからいいやで使ってしまう。
参考
http://www.syuhari.jp/blog/archives/825
http://api.cakephp.org/view_source/http-socket/
登録:
投稿 (Atom)