MW211 EXIT

devlog
PHP/ヒアドキュメントで定数を使う
2011年11月27日
ヒアドキュメントってのは以下みたいなやつだ。(かなり重宝している)
┌──────────────────────────────────────┐
│echo <<<___HTML___                                                          │
│結果は、{$result}です。                                                     │
│___HTML___;                                                                 │
└──────────────────────────────────────┘

でも、定数だと反応してくれない(この場合「成功」ではなく「RESULT」が表示される)
┌──────────────────────────────────────┐
│define(RESULT, '成功');                                                     │
│echo <<<___HTML___                                                          │
│結果は、{RESULT}です。                                                      │
│___HTML___;                                                                 │
└──────────────────────────────────────┘

ま、一旦変数に代入すりゃ回避できるのだが…。
┌──────────────────────────────────────┐
│$result = RESULT;                                                           │
│echo <<<___HTML___                                                          │
│結果は、{$result}です。                                                     │
│___HTML___;                                                                 │
└──────────────────────────────────────┘
なんか一気にやってしまいたい。

そこで、サブメソッドを使う方法。
┌──────────────────────────────────────┐
│echo <<<___HTML___                                                          │
│結果は、{$this->def(RESULT)}です。                                          │
│___HTML___;                                                                 │
│- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - │
│private function def($define) {                                             │
│  return $define;                                                           │
│}                                                                           │
└──────────────────────────────────────┘
「return $define;」の部分は「return constant($define);」ならより丁寧か。

それじゃ、静的メソッドにしちゃって
どこからでも簡単に使えるようにしたらいいじゃん、と思ってやってみた。
┌──────────────────────────────────────┐
│echo <<<___HTML___                                                          │
│結果は、{Edit::def(RESULT)}です。                                           │
│___HTML___;                                                                 │
└──────────────────────────────────────┘
答えはNG。ダメでした。
先頭の「$」が肝らしく、これがないと反応してくれない。
分類:PHP
JavaScript/リロード
2011年11月26日
毎回リロードするならこれ。
┌──────────────────────────────────────┐
│setInterval(function(){処理;}, リロード間隔);                               │
└──────────────────────────────────────┘
リロード間隔は、マイクロ秒で指定する。

一回きりのリロードの場合はこれ。
┌──────────────────────────────────────┐
│setTimeout(function(){処理;}, リロード間隔);                                │
└──────────────────────────────────────┘
これで、画面全体をリロードすれば、元に戻るので毎回リロードと同等になる。
分類:JavaScript
jQuery/Ajax入門(1)
2011年11月25日
Ajaxがよくわからないので、わかり次第記録していく(jQueryを利用しちゃう)。

まずは、部分リロードの方法。
┌──────────────────────────────────────┐
│<meta http-equiv="Pragma" content="no-cache"/>                              │
│- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - │
│<script type="text/javascript" src="js/jquery….js"></script>               │
│- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - │
│<script type="text/javascript">                                             │
│$(function(){                                                               │
│  $("button").click(function(){                                             │
│    $("#ajax").load("index.php #ajax");                                     │
│  })                                                                        │
│});                                                                         │
│</script>                                                                   │
│- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - │
│<button>最新の状態を取得</button>                                           │
│- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - │
│<div id="ajax">                                                             │
│<?php echo date('YmdHis');?>                                                │
│</div>                                                                      │
└──────────────────────────────────────┘
ボタンを押すことによって、「index.php」を画面ごとリロードしていたものを
部分的にリロードしたい場合の例。

div等のID(この場合は「ajax」)で範囲指定した部分のみ上書される。
この例だと、ボタンを押すごとに、時刻文字列のみが更新される。

キャッシュを利用されると時刻文字列に変化がおきないので
「<meta http-equiv="Pragma" content="no-cache"/>」をつける必要があるみたい。

※注意:訂正があります、jQuery/Ajax入門(2)を必ず読んでください
分類:jQuery
jQuery/チェックボックスがチェックされているか
2011年11月24日
「id="abc"」のチェックボックスがチェックされている場合に「true」、
チェックされていない場合に「false」を取得したい場合は、以下のいずれかで。

まずは、以下が推奨。
┌──────────────────────────────────────┐
│$('#abc').prop('checked')                                                   │
└──────────────────────────────────────┘
他にもいろいろある。
┌──────────────────────────────────────┐
│$('#abc').is(':checked')                                                    │
├──────────────────────────────────────┤
│$('#abc:checked')[0]                          ($('#abc:checked').length > 0)│
├──────────────────────────────────────┤
│$(':checkbox#abc:checked')[0]        ($(':checkbox#abc:checked').length > 0)│
├──────────────────────────────────────┤
│$('#abc').attr('checked')                           ※attrとpropの違いに注意│
├──────────────────────────────────────┤
│$('#abc').get(0).checked                                                    │
└──────────────────────────────────────┘
分類:jQuery
JavaScript/小数点以下桁数チェック
2011年11月23日
JavaScriptの場合は、こう。
┌──────────────────────────────────────┐
│var decimal = 値.split(".");                                                │
│var 桁数 = (decimal[1]) ? array[1].length : 0;                              │
└──────────────────────────────────────┘
分類:JavaScript
PHP/小数点以下桁数チェック
2011年11月22日
┌──────────────────────────────────────┐
│$decimal = explode('.', $値);                                               │
│$桁数 = isset($decimal[1]) ? strlen($decimal[1]) : 0;                       │
└──────────────────────────────────────┘
「123.456」の場合、小数点以下桁数「3」桁と判定できる。
分類:PHP
PHP/乱数
2011年11月21日
「0~9」の範囲で、整数の乱数を発生させたい場合
┌──────────────────────────────────────┐
│rand(0, 9)                                                                  │
├──────────────────────────────────────┤
│mt_rand(0, 9)                                                               │
├──────────────────────────────────────┤
│floor(lcg_value() * 10)                                                     │
└──────────────────────────────────────┘
昔は乱数の種を設定しないといつも同じ結果となっていたので
「rand()」では「srand()」を、「mt_rand()」では「mt_srand()」を
事前に実行する必要があったみたいだが、今は自動でやってくれるので必要ないみたい。
#「lcg_value()」は元々そういうのは不要

で、「rand()」と「mt_rand()」の違いだが、「mt_rand()」の方がよりよいらしい。
具体的には高速みたい。
「mt_rand()」を使うのがおすすめみたい。
分類:PHP
PHP/配列のランダムな並び替え
2011年11月20日
┌──────────────────────────────────────┐
│shuffle($配列);                                                             │
└──────────────────────────────────────┘
配列から適当に値を取得する場合、添字を乱数で作成する方法もあるが、
「shuffle()」で適当に並び替えて、「$配列[0]」と先頭を取得する方法もある。

こっちだと、乱数で作成する添字の範囲(つまり配列が何件あるか)とか
気にしなくてよく、シンプルにできる。

ただし、並び替えた配列の添字(キー)は新たに割り当てられるので
元の姿をとどめないものだと思って使うべきだ。
(元の姿なんか関係ない場合にはかなり有効)

元の姿をとどめたい場合には、一旦ダミー配列にコピーしてから、
そっちを並び替えればよい。
┌──────────────────────────────────────┐
│$ダミー配列 = 配列;                                                         │
│shuffle($ダミー配列);                                                       │
└──────────────────────────────────────┘
分類:PHP配列
ブラウザのリロード
2011年11月19日
なんだか、あいまいなので整理。

以下は同じ。(ただし、IEのみで確認)
  ・ブラウザ上のリロードボタン(を押す)
  ・「f5」
  ・「ctrl」+「r」

キャッシュをクリアしたい場合は以下
  ・「ctrl」+「f5」
分類:ブラウザ
JavaScript/値の確認
2011年11月18日
「abc」という変数があって、処理中の値を知りたい場合、
そこにalert()文を入れてダイアログ出力して確認するというのは常套手段だ。
┌──────────────────────────────────────┐
│alert(abc);                                                                 │
└──────────────────────────────────────┘
上記みたいな感じ。(BASICのPRINT文みたいなもんだ)

でも、そのダイアログの内容をエディタで編集したいと思っても、
ダイアログ内容のコピー&ペーストができない。

そこで、代替案。
クリップボードへ出力するのだ。
┌──────────────────────────────────────┐
│clipboardData.setData("Text", abc);                                         │
└──────────────────────────────────────┘
こんな感じ。

実行した場合、IEだと
「このWebページがクリップボードへアクセスすることを許可します?」みたいな
警告文を一応表示して許可を求めてくるので、「アクセスを許可する」を選ぶ。

これで、クリップボードへ格納されたので、メモ帳とかを開き
「貼り付け」(ctrl+v)をすれば、値を取得できる。

IE以外のブラウザについては、
やったことがなくどんな挙動になるかは知らないのであしからず。
分類:JavaScript
前へ 1 … 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 … 156 次へ