2016年07月05日


jQuery で推奨される画面ロードイベントの記述

jQuery 3.0 アップグレードガイドで書かれている、document-ready は jQuery 3.0では1つ目を推奨として以下が書かれています。

$(fn);

要はこういう事です。
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script>
$(function(){
	$("#btn")
		.on("click", function(){
			alert("ボタンがクリックされました");
		});
});
</script>

<input
	type="button"
	id="btn"
	value="実行">



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


2014年12月27日


JavaScript : ページ内のテーブルのボーダー(枠線)を設定する

getElementsByTagName は全てのノードで使用できるので、順番に子孫を取得する事ができます。

<script type="text/javascript">

function scriptTest(evt) {

	// TABLE 要素のコレクション
	var obj = document.getElementsByTagName("TABLE");
	var objcol = null;

	// TABLE 一覧
	for( var i = 0; i < obj.length; i++ ) {

		// テーブル外側の枠線
		obj[i].style.borderStyle = 'solid';
		obj[i].style.borderColor = '#411DB8';
		obj[i].style.borderWidth = '1px';

		// テーブル内の TD の一覧
		objcol = obj[i].getElementsByTagName("TD");
		for( var j = 0; j < objcol.length; j++ ) {
			// テーブル内の TD の枠線
			objcol[j].style.borderStyle = 'solid';
			objcol[j].style.borderColor = '#ffa500';
			objcol[j].style.borderWidth = '1px';
		}

		// テーブル内の TH の一覧
		objcol = obj[i].getElementsByTagName("TH");
		for( var j = 0; j < objcol.length; j++ ) {
			// テーブル内の TH の枠線
			objcol[j].style.borderStyle = 'solid';
			objcol[j].style.borderColor = '#1C8A23';
			objcol[j].style.borderWidth = '1px';
		}
	}

}
</script>
<input type="button" value="実行" onclick='scriptTest(event);'>



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


2014年12月26日


JavaScript : ページの最後へ移動するボタン

今時のブラウザならどれでもうまく行くと思いますが一応 Math.max で最大を取っています

1) document.getElementsByTagName("HTML")[0].scrollHeight
2) document.documentElement.scrollHeight
3) document.body.scrollHeight

<input
	type="button"
	value="ページの最後"
	onclick='scroll(
		0,
		Math.max(document.getElementsByTagName("HTML")[0].scrollHeight,document.documentElement.scrollHeight,document.body.scrollHeight)
		);
	'
>



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


2014年11月28日


set_include_path と PATH_SEPARATOR

PHP マニュアル : set_include_path

このマニュアルページ内に『PATH_SEPARATOR 定数を利用することで、 オペレーティングシステムに依存せずに include path を追加することが可能です。』とあります。

set_include_path は重要ですが、オンラインと Windows で環境切り替えでは、この事がとても重要になります。
<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>
同様に、DIRECTORY_SEPARATOR を使って、\ と / の違いも吸収する事も可能ですが、/ で書いておけば Windows でも動作すると思います。


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


2014年07月10日


PHP の Parse error

PHP を始めると良く遭遇するエラーですが、たいていが行末の ; (セミコロン)の記述のし忘れです。ですが、PHP が表示してくれる行番号は、その行の次の行になります

以下のコードは、6行目がエラーとなります。
<?php

foreach( $_SERVER as $member ) {

	print $member
	print "OK";

}

?>


Parse error: syntax error, unexpected 'print' (T_PRINT) in C:\laylaClass\WinOfSql102\Action.php on line 6
タグ:PHP
posted by at 01:14 | Comment(0) | PHP | このブログの読者になる | 更新情報をチェックする



PHP : 条件つきで定義される関数

PHP では、関数は参照される前に定義されている必要はありません。 ただし条件付きで関数が 定義されるような場合を除きます
以下が簡単な例です。ボタンで送信した場合はエラーになります Fatal error: Call to undefined function plus() in C:\httpd142p\kikin\func_01.php on line 12
<?php
// 条件つきの関数

if ( $_GET['send'] == '' ) {
	function plus( $a, $b ) {
	
		return $a + $b;
	
	}
}

print plus(10,5);

?>
<form
	name="frm"
	action="<?= $_SERVER['SCRIPT_NAME'] ?>"
	target="_self"
	method="get"
	onsubmit='return (function(){return true;})();'
>
<input type="submit" name="send" value="送信">
</form>





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



PHP : 関数の中の関数

関数の中に関数が定義できて、どのような関数もグローバルスコープでどこからでも呼び出す事ができます。と、マニュアルには書かれていますが、

つまり、

「必要な時に関数のロードをする」為にラップする関数をローダーとして使えますよ、という事だと思います。
<?php
// ********************
// 計算関数のロード
// ********************
function load_compute( ) {

	function plus( $a, $b ) {
		return $a + $b;
	}

	function minus( $a, $b ) {
		return $a - $b;
	}

}

// ここで実行すると未定義エラー
if ( !function_exists( "plus" ) ) {
	print "未定義です<br>";
}

load_compute();
print plus(10,5) . "<br>";

// ここで実行すると定義あり
if ( function_exists( "plus" ) ) {
	print "定義されています<br>";
}


?>


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



PHP : 関数への参照渡しと global キーワードでの変数宣言( または$GLOBALS の利用 )

PHP では関数の引数は「値渡し」なので、関数内の引数の変数はコピーされたもので、その内容を変更しても外の変数の内容が変更される事はありません。また、仮に外と同じ名前の変数を関数内部で参照しても、それはローカルのみ有効な別の変数となります。

そこで、PHP では外部の変数を直接参照する方法として参照渡しと global キーワードによる外部の変数の参照方法という手段があります。

※ ▼ PHP ドキュメントに以下のような記述があります
例2 globalのかわりに$GLOBALSを使用する
<?php
// ************************
// 定義で参照渡し
// ************************
function plus( &$a, $b ) {

	$a += $b;
}

$x = 10;
plus($x,5);

print $x;
print "<hr>";

// ************************
// global キーワード
// ************************
function plus3() {

	global $z;

	$z[0] += $z[1];
}

$z = array(10,5);
plus3();

print_r( $z );
print "<hr>";

// ************************
// $GLOBALS(スーパーグローバル)
// ************************
function plus4() {

	global $z;

	$GLOBALS['z'][0] += $GLOBALS['z'][1];
}

$z = array(10,5);
plus4();

print_r( $z );
print "<hr>";


?>




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



PHP : プログラムの要素とブロックに対する処理

{ } はブロックです。ブロックの中には処理が記述されます。処理記述には2種類あって、; で終了する「文」と { } で表現されるブロックに分かれるのですが、{ } にもいくつか種類があって、以下のような形式になっています。

命令 ( 命令の属性 ) {
	命令に所属する処理記述
}

但し、PHP のドキュメントにそのような明確な記述があるのでは無く、C 言語と同等の機能という事で推測した経験則です。ドキュメントは、{} を中括弧と呼んで、『文は、中括弧によるグループ文で カプセル化することによりグループ化することが可能です。 グループ文は、同時に文にもなります』とあります
例えば以下のようなものです。
// ************************************************
// if ( オプションとして else )
// ************************************************
if ( 条件 ) {
	条件が true である場合の処理記述
}

// ************************************************
// for ( 指定回数繰り返し )
// ************************************************
for (initialization; 条件; increment) {
	条件 が true である間繰り返される処理記述
}

// ************************************************
// while ( 条件繰り返し )
// ************************************************
while (条件) {
	条件 が true である間繰り返される処理記述
}

// ************************************************
// function ( 関数定義 )
// ************************************************
function 名前( 仮引数 ) {
	名前で呼ばれた時に実行される処理記述
}

// ************************************************
// try ( エラー処理 )
// ************************************************
try {
	監視対象の処理記述
}
catch( エラーの値 ) {
	監視対象の処理記述がエラー時に実行する処理記述
}

; で終わる文は、殆どが他で定義された関数名の呼び出しかまたは、代入文による変数の入れ替えになります。


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


2014年07月09日


PHP : 関数名の規則

PHP のマニュアルには、
関数名は、PHP の他のラベルと同じ規則に従います。関数名として有効な 形式は、まず文字かアンダースコアで始まり、その後に任意の数の文字・ 数字・あるいはアンダースコアが続くものです。正規表現で表すと、

[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

となります。 
とあります。 ですから、こんな関数が SHIFT_JIS で書く時は可能になるはずですが・・・
<?php
// [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* 

function シフトジスノカタカナ( $a, $b ) {

	return $a + $b;

}

print シフトジスノカタカナ(10,5);

?>


たしかに動きました。

また、「関数名は大文字小文字を区別しません」との事です
<?
// 関数名は大文字小文字を区別しない

function PLUS( $a, $b ) {

	return $a + $b;

}

print plus(10,5);

?>




0 1 2 3 4 5 6 7 8 9 A B C D E F
0 \0 0 @ P ` p
1 ! 1 A Q a q
2 " 2 B R b r
3 # 3 C S c s
4 $ 4 D T d t
5 % 5 E U e u
6 & 6 F V f v
7 \a ' 7 G W g w
8 \b ( 8 H X h x
9 \t ) 9 I Y i y
A \n * : J Z j z
B \v ESC + ; K [ k {
C \f , < L \ l |
D \r - = M ] m }
E SO . > N ^ n ~
F SI / ? O _ o ソ


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