2010年09月12日


PHP で最初に知っておく ; で終わる処理記述に関わる事

 print "文字列";
print は 関数では無く、「言語構造」だそうです。echo という関数がありますが、
日本人はそもそも、echo ってなじみが薄いので、print でどうぞ。

 exit();
この処理が実行されると、以降の処理は実行されません。

 mixed print_r ( mixed $expression [, bool $return= false ] );
これ知らないとデバッグできません。オブジェクトでも、配列でも文字列に変換して
改行つけたり、いろいろ見やすくしてくれます。また、第二引数に true を指定すると
表示せずに、戻り値に返してくれるのでとても便利です。

 phpinfo();
PHP の情報が全て表示されます。必須です。

 reqire_once("phpファイルのパス");
別のファイルに書いた記述をそのまま埋め込みます


で、PHP の書ける場所を用意する場合
<?

phpinfo();

?>

<?php

phpinfo();

?>

<script language="php">

phpinfo();

</script>

<?= 値を持つ記述 ?>


先頭の書き方が簡単です。2番目は一番推奨するそうですが、始めるにあたっては
先頭のほうがいいです。3番目は「こんなのもある」ですね。

最も重要なのは、4番目です。これを知らないと PHP を知らない事と同義です。

関連する記事

PHPモードとHTMLモード : breaks out of PHP mode and returns to HTML mode


posted by at 22:13 | Comment(0) | PHP | このブログの読者になる | 更新情報をチェックする


2010年09月05日


JavaScript : 変数は乗り物で、function は部屋です。

乗り物には大きく分けて2種類あって、部屋の外で作られた乗り物は、部屋の中に
入る事ができますが、部屋の中で作られた乗り物は部屋の中だけしか移動する事が
できません。

	外で作られた乗り物 = グローバル変数
	部屋の中で作られた乗り物 = ローカル変数
部屋の中ではいろいろな事が行われますが、それを知るには部屋の中で行われるシ ナリオを読む必要があります。シナリオは「行」と言う時間の単位で進んで行きま す。一つの行で行われる内容はかならずいくらかの時間を消費します。 文字列はシナリオの中で、直接かかわる場合もありますが、関係無い場合もあります。 直接赴く場合もあれば、乗り物に乗って赴く場合もあります。 部屋ですから、入り口と出口がありますが、そのルートを通るのは文字列とは限り ません。関係者のみが使う場合もあり、文字列は外で作られた乗り物に乗っておれ ば、その入り口を使わないでもその部屋に入る事ができます。
	入り口にある乗り物 = 仮引数( ローカル変数 )
	出口の目印  = return ステートメント
関連する Mozilla ドキュメント Variables - MDC
posted by at 13:56 | Comment(0) | JavaScript | このブログの読者になる | 更新情報をチェックする



JavaScript : 文字列にWEBという世界を旅させる為の心得

旅をするのに、飛行機に乗るなら飛行場。電車に乗るなら駅へ行く必要があります。
また、その場所へ行っても「旅をする為」のチェックがあります。切符を持っている
かどうかとか、持ち込んではいけないものを持っていないとかさまざまです。

それらは、いずれも旅をするのに支障の無いようにする為のルールで
あったりするわけです。極端な話、ルールを守らなくでも「移動」だ
けなら可能ではあるわけですが。

文字列の旅は FORM から出発

<FORM> 〜 </FORM> 中に入る事によってサーバーへの旅の権利を得る事ができます。
また、出発する前にチェックを受けて、全てのチェックに通過してはじめて、
ブラウザがサーバーへ送り出してくれます。

その為に、発射スイッチが必要です

 1) type="submit" のボタン

このボタンを押すと、FORM の onsubmit イベントが起こります

Form_submit_button

 2) onsubmit='return checkForm(this)'

return は、checkForm でチェックされた結果を受け取る為に必要です。ブラウザ
は、こうしておくと checkForm から return された内容を見る事ができます

checkForm は、自由に作成できる「チェック機構」を持つ部屋です。
旅する文字列を全てチェックできるように、FORM 自身を示す、this を引き渡しています。

 3) 問題があれば return false;

return は、それを実行してしまうと、この「チェック機構」を持つ部屋をすぐ
出てしまいます。後に続くチェックの係の窓口に並ぶ事はありません。

Form_submit_check

ただ、作法として、どこがまずかったかブラウザに知らせる為に、focusselectという行動を取ることが「最良のマナー」となっています。
( しなくても良いです )

 4) 問題が無ければ return true;

全ての窓口で「承認」をもらって晴れて旅が始まる直前の状態です。ここから
はもう止める事ができまません。手順に従って旅が始まります。
<script type="text/javascript">
function checkForm( obj ) {
	if ( obj.inp.value != "123" ) {
		alert("一致しません");
		obj.inp.focus();
		obj.inp.select();
		return false;
	}
	if ( !obj.chk.checked ) {
		alert("チェックして下さい");
		obj.chk.focus();
		return false;
	}
	if ( !obj.rb[0].checked ) {
		if ( !obj.rb[1].checked ) {
			alert("どちらかを選んで下さい");
			obj.rb[0].focus();
			return false;
		}
	}

	alert("送信します");
	return true;
}
</script>
<form name="frm" onsubmit='return checkForm(this)'>
<input type="text" name="inp">
<input type="checkbox" name="chk">
<input type="radio" name="rb">
<input type="radio" name="rb">
<br />
<input type="submit" value="送信">
</form>


posted by at 10:00 | Comment(0) | JavaScript | このブログの読者になる | 更新情報をチェックする


2010年09月04日


さてお立ち会い。a == b とはいったいなんでしょうか?

ここで == は、メソッド名で、 b はパラメータです。

alert が window に属するように、getElementById が document に属するように、
== は a に属します。WEB アプリでキーボードから入力されるのはみんな文字列
です。ですから、a に入ってるのもたいてい文字列で、a はざっくばらんに言うと「変数」
ですが、結局、エレメントや window や document と 同じメソッドやプロパティ
をもつ「オブジェクト」です。

さらにここで大事なのは、

== というメソッドは必ず true( まこと ) か false( いつわり )返します。
だから、if 文で使うのは当然の事なのです。

※ a は プロパティも持ってますから、a.length とすると、文字数を知る事ができます


関連する Microsoft ドキュメント

比較演算子 (Jscript)
length プロパティ (String オブジェクト)


posted by at 23:13 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする



パスワードの一致に if文を使う

if文を使う目的は、「比較」が殆どです。その中でもさらに「一致」という比較しか
必要無いと言っても過言ではありません。

いや、とにかくプログラミングを覚える事が先決と言う理由だけで無く、WEB アプリ
で複雑なチェックをすると痛い目にあうのが目に見えているからです。入力の種類や
工夫でチェックしないで済むようにするのが賢い考え方で、実際本当にチェックをす
るのは、サーバーのアプリケーションでするものなのです。

ですから、「一致する」という意味の == という記号だけ知っておけばいいのです。
「一致しない」は else でフォローしますし( 文字通り後から書くのでフォローです )


で、何故 = では無くて、== なのかと言うと、= は 先に代入文( a = "ABC" ) に使っ
てしまったので、== を使っているのです。
<script type="text/javascript">
function checkPassWorrd() {
	if ( document.getElementById("pass").value == "123" ) {
		alert("一致しました");
	}
}
</script>
<input type="password" id="pass">
<input type="button" onclick='checkPassWorrd()' value="パスワードチェック">


posted by at 16:50 | Comment(0) | JavaScript | このブログの読者になる | 更新情報をチェックする



getElementById と言う呪文

「魂をもってエレメントを与えたまへ」

大げさに言うと、そのような。魂は同じ魂は二つ無いだろうから、ID と同じと言う事で、エレメント = 要素 = オブジェクト ですが、エレメントと言ってしまえばなんとなくファンタジーです。

document.getElementById - MDC

getElementById は、document に属する「メソッド」です。引数に文字列としての id 属性を渡して、それに対する実体というか実際というか、オブジェクトを返します。ページ上で id を持つ要素を一望するには、IE8 の開発ツールで、表示メニューから、「Class と ID 情報」をチェック状態にします。# が付いているのが ID で、#以外の部分の文字列を使って参照できます
document.getElementById("top_1").style.background = "url(http://winofsql.jp/image/sab.gif)"
Ief12

Firebug 等の開発ツール( IE / Google Chrome デベロッパーツール ) では以下のコードをコンソールに貼り付けて実行すると一覧を取得できます
for( i = 0; i < document.body.getElementsByTagName("*").length; i++ ) {
    if ( document.body.getElementsByTagName("*")[i].id ) {
        console.log( document.body.getElementsByTagName("*")[i].id );
    }
}


posted by at 15:45 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする


2010年09月03日


if文のルール

if ( true ) {
	処理
}

プログラミングの原点とも言える if 文ですが、if 書いて、その横に () を書いて
その後に if 文に所属するブロックを書きます。これがルールです。

function 定義とその記号の意味 ととても良く似ています。function は後から
呼び出す為に先に準備しておくものですが、if は、今まさに起こってる事に対して
書きます。() の間には true(まこと)false(いつわり) になるものをはめ込みます。
で、一番最初解りやすいのが、confirm によるニ択の結果です。
if ( confirm("更新しますか?") ) {
	alert("更新");
}
else {
	alert("キャンセル");
}

confirm("更新しますか?") が実行されると、ダイアログが表示されてボタンが二つ
用意されていて、どちらかを選ぶ事ができます。OK を選ぶと true が返されて、
キャンセルを選ぶと false が返されます。

ですから、その結果次第で if 文は二通りの結果を用意できるわけです


posted by at 15:39 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする



function 定義とその記号の意味

function 名前( [パラメータ] ) { 処理 }
alert も function です。以下のように定義されています
function alert() {
    [native code]
}
そもそも function は、後で呼び出す為に準備するものです。ですから、
呼び出す時に使うものと同じものを用意しなければなりません。

1) 名前
2) パラメータ

ですから、function 名前( [パラメータ] ) までで呼び出せる最低限の
準備をしています。そして、そのままだと何もしない事になるので、{}
という function 名前( [パラメータ] ) に所属するブロックを作成する
事になります。後はひたすらブロックの中に処理を書けばいいことになります。

ここでもっとも注意しなくてはならないのは、

「ペアの記号は最初に両方書く」

という原則です。そうしておかないと、絶対に後から付け足すのを忘れるからです。

a) ()
b) {}
c) ""
とくにこの3つの記号ペアは要注意です。 ※ 書式の注意 [] は、省略可という意味です。 関連する記事 alert("ABC") の意味
posted by at 13:00 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする



文字列って何?

見たままの内容です。文字が列を作っているので、文字列ですが、
文字が行列作って並んでいるところを想像して下さい。

もし、人間の行列なら。たとえば100人しか食べれない限定のラーメンの為に並ん
でいるのだとしたら、先頭から始まって、100人目の後ろで終わります。つまり区
切りですが、その区切りを普通文字列の世界では " (ダブルクォート) を使うわ
けです。

"ABC" は、文字が3つ並んだ行列で、A が先頭で、C が最後です。

"A" でも 文字列ですし、"" でも文字列です。

つまり、見たままではありますが、実際に使用されるのは " と " の間にある部分
です。これを入れ物ににいれる場合があって、それを変数と言います。

a = "ABC"

これは、a という入れ物に ABC という文字列を入れてしまった事を意味します。
変数という入れ物に入れると、それが区切りの変わりになるので " はいらなく
なります。人間だと、乗り物に乗って移動するようなものです。


で、文字列は結局旅をする事が主な役目です。
画面で入力された文字列は、長い旅をしてどこかのサーバーの中にあるハードデ
ィスクの中の一部屋へ収まります。それがそもそもの目的だったりするわけです。


posted by at 09:24 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする


2010年09月01日


prompt の戻り値の扱い

prompt は、二つ目の引数で入力しなかった時の文字列を指定します。
ですから、結果のパターンとしては3種類を想定する必要があります

1) キャンセルした場合
2) 入力しなかった場合
3) 入力した場合


IE では prompt を利用するのに IE のセキュリティ設定で
「スクリプト化されたウインドウを使って情報の入力を求めることを Web サイトに許可する」
に対して有効にしなければなりません
alert( prompt("こんにちは","") );

var mess = prompt("こんにちは","");
if ( mess == null ) {
	alert( "キャンセルされました" );
}
else {
	if ( mess == "" ) {
		alert( "何も入力されていません" )
	}
	else {
		alert( mess );
	}
}
関連する Microsoft ドキュメント

prompt Method (window, Window Constructor)


posted by at 13:29 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする


2010年08月31日


alert("ABC") の意味



1) alert


2) ( [...] )
  • メソッドを呼び出す記号
  • 間に何かある場合は、メソッドにそれを引き渡す
3) "文字列"
  • 見たままの場合は、"(ダブルクォーテーション)で挟まれる
  • 変数の場合は、挟まれない
alert( window.alert ) を実行すると以下のようになります
function alert() {
    [native code]
}
以下の alert は先頭の文字列のみ表示されます
alert("A","B","C")
posted by at 22:11 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする


2010年08月30日


デバッグには見て確かめる alert、キャンセルを可能にする confirm

リファレンス

alert ( Microsoft )
alert ( Mozilla )

多くの処理を部分部分で確かめたい場合は、Firebug の console.log を使用して
ログを取るほうが有効ですが、一つ一つ確実に確かめるには alert が最も有効です。
( ※ IE では、alert(); はエラーになりません )

confirm ( Microsoft )
confirm ( Mozilla )

戻り値として true または false が返るので、if 文の条件式に直接使う事になります。
if ( confirm("更新しますか?") ) {
	console.log("更新");
}
else {
	console.log("キャンセル");
}

以下は、IE 用の console.log の簡易的な代替えです。
<script type="text/javascript">
var console = {
log: function(str) {
	document.getElementById("message").innerHTML += (str + "<br />");
}}
</script>
<div id="message"></div>


posted by at 19:49 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする



良く使う実用テクニックから学ぶ基本テクニック

1) クリックの代替( イベントの呼び出し )とクロスブラウジング

通常、IE とそれ以外のブラウザでは片方にあって片方に無いメソッドが存在
する場合があり、それ自身を条件にしてクロスブラウジングする事もあります
が、ブラウザの種類を示す文字列から直接判断するのが基本です。

2) 同一階層(または下の階層)の要素を親経由で参照する

id や name 指定の無い一般的な要素を共通の親経由で参照する事が可能です

3) 正規表現置換基本テスト

HTML の特殊キャラクタを一括で置換して HTML 上で表現する事は良くあります

4) ブラウザの表示を半透明で暗くする方法

これにも、ブラウザによる違いがありますが、効果として良く使われるテクニ
ックです


posted by at 19:32 | Comment(0) | JavaScript | このブログの読者になる | 更新情報をチェックする



this ステートメントと this 演算子

どちらも同じものです。Microsoft が this ステートメント で、Mozilla が this 演算子
として説明しています。

オブジォクトを定義して、インスタンスを作った時にそのオブジェクト自身を指しますが、
それ以外はグローバルオブジェクトとして最上位のオブジェクトを指します。
Microsoft では、Window オブジェクトだと書いてありますが、結果としては同じ事です。
<script type="text/javascript">
function scriptTest(evt) {
	alert(this.a + " / " + this.b);
	alert(window.a)
}
</script>
<input type="button" value="実行" onclick='scriptTest(event);'>
<script type="text/javascript">
var a = "001";
window.b = "002";
</script>



posted by at 16:16 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする



JavaScript はボタンのクリックから

リアルタイム JavaScript では入力したJavaScriptをその場で実行できます。
例えば alert("OK"); と入力して「実行ページの作成」ボタンをクリックすると、
「実行」ボタンが現れます。

この「実行ボタン」が alert("OK") を呼び出すように作られています。

※ 作成される HTML は以下のようになります。
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=EUC-JP">
<title>JavaScriptをその場で実行する</title>
<style>
* {
	font-size:16px;
}
</style>

<script	type="text/javascript" src="http://www.google.com/jsapi" charset="utf-8"></script>
<script	type="text/javascript">
google.load("prototype", "1.6.1.0");
</script>

<script type="text/javascript">
function parent_checge() {

	var height = document.body.scrollHeight;
	parent.document.getElementsByName("tool_js_frame")[0].style.height = ((height+100) + "px");

}

if (window.attachEvent){
	window.attachEvent('onload', parent_checge);
}
else {
	window.addEventListener('load', parent_checge, false);
}
</script>

</head>
<body>
<script type="text/javascript">
function scriptTest(evt) {
	alert("OK");
}
</script>
<input type="button" value="実行" onclick='scriptTest(event);'>

</body>
</html>

この中に記述されている「ボタンをクリック」に関係する部分は以下の部分です。
<script type="text/javascript">
function scriptTest(evt) {
	alert("OK");
}
</script>
<input type="button" value="実行" onclick='scriptTest(event);'>

処理される順序
1) ボタンがクリックされる

2) onclick というイベントが発生する

3) イベントに登録されていた処理が呼び出される
 ※ この場合は、scriptTest(event);

4) scriptTest という function が event というオブジェクトを
 引数として与えられて実行が開始される

5) scriptTest という function の内部が実行される
 ※ この場合は alert("OK");


posted by at 13:51 | Comment(0) | JavaScript : 重要(基本) | このブログの読者になる | 更新情報をチェックする


×

この広告は90日以上新しい記事の投稿がないブログに表示されております。