2018/9/25 HTML_QuickFormのバリデートのjavascript関数について、引数としてthisを渡す

pearのHTML_QuickFormを使っていて、addRuleメソッドで引数としてclientを指定するとjavascriptでバリデートを行う。そのソースコードを見たところ、


<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<html>
<head>
<meta http-equiv=”Content-Typecontent=”text/html; charset=UTF-8“>
<title>Testing PEAR HTML_QuickForm</title>
</head>
<body>
<script type=”text/javascript“>
//<![CDATA[
function validate_frmTest(frm) {
var value = ”;

2018/9/13 cookieについて

cookieを使って履歴URLを表示したりした。

cookie_139.php

php_practice_8.php

php_practice_7.php

間で履歴を表示。cookieにはURL文字列を空文字で区切って$uriに代入。explode(” “,$uri)で配列にする($uriarr)。繰り返しで$uriarrの要素を表示。

直近10回まで表示しようとした時、アクセスが10回未満の場合、$uriarrの要素が無い部分も表示しようとしてエラーが出た。(「Notice: Undefined offset」)

要素が無い場合breakで終了する条件分岐で解決した。

マスターブックの例にあるが「各ページに何回アクセスしたか」すぐできそう。

クッキーでいろいろできそうだが、データベースでデータ保存もやりたい。

2018/9/10 phpのスコープについてまとめる。

https://qiita.com/TakashiOshikawa/items/0f2420a1c94ba78c9035

①関数スコープはある。関数ブロック内で宣言した変数を関数ブロック外から参照はできない。これはjavascriptと同じ。

②グローバルスコープ。関数外で宣言された変数。

    $val = 'グローバルスコープ';

    function func2()
    {
        return $val;
    }

    echo $val;  //グローバルスコープ
    echo func2(); //Undefined Variable: val(エラー)

phpの場合グローバル変数を関数内から参照できない(グローバル宣言すればで参照できる)。ここはjavascriptと異なる。

javascriptの場合、関数内にグローバル変数と同じ名前のローカル変数が無ければグローバル変数を参照する。同名のローカル変数があれば、ローカル変数を参照するので、グローバル変数は参照できない。

上記例は、javascriptの場合、関数内で$valは宣言されていないのでグローバル変数を参照するのだが、phpの場合は上記のままでは参照できない。(グローバル宣言をすれば参照できる。ただqiitaの↑ページによるとグローバル宣言はあまりしない方がよいらしい。)


<?php

$val=500;

function func2($n)
{
$val=40;
print $val;
print “<br>”;
print …

2018/9/8 コメントまとめ html,javascript,php

<script type="text/javascript">
<!-- JacaScript未対応ブラウザ対策
// 実際には入力チェックなどするでしょ
var today = new Date();
var month = today.getMonth() + 1;
var day = today.getDate();
document.write("今日は" + month + "月"+ day + "日です。");
// JacaScript未対応ブラウザ対策 -->
</script>

javascript未対応ブラウザの場合htmlコメントが無いと赤文字部分がそのまま表示されてしまうが、上記のようにhtmlコメントアウトすると赤文字部分は表示されない、ということですね、はい。

2018/9/6 プリミティブ・数値リテラル・メソッドについて javascript

十一章第六回 プリミティブについて2

特になし。ほとんど定義なので理解するだけ。

<!doctype html>
<html>
<head>
<title>test</title>
</head>
<body>

<script type=”text/javascript”>

console.log(“3/0= “+3/0); // Infinity
console.log(“-3/0= “+(-3/0));
console.log(“Infinityの型は “+(typeof (1/0))); // “number”
console.log(“Infinity-Infinity= “+(Infinity-Infinity)); // NaN
console.log(“Infinity/Infinity= “+(Infinity/Infinity));
console.log(“0/0= “+(0/0));
console.log(“”);

console.log(‘parseInt(“123px”)= ‘+(parseInt(“123px”))); // 123

console.log(‘Number(“123px=”)= ‘+(Number(“123px”))); // NaN…

2018/9/5 Rangeについて javascript

<!doctype html>
<html>
<head>
<title>test</title>
</head>
<body>

<p id=”one”>1abcdefghi</p>
<p id=”two”>
2abc
<strong>
強い
</strong>
gh
</p>
<p id=”three”>3abcdefgh</p>
<br><br><br>

<p id=”vanish”>消えろ!!</p>

<script type=”text/javascript”>
var rng1=document.createRange();
var rng2=document.createRange();
var rng3=document.createRange();
var rngs=document.createRange();
var p1=document.getElementById(“one”);
var p2=document.getElementById(“two”);
var p3=document.getElementById(“three”);
var ps=document.getElementsByTagName(“strong”)[0];…

2018/9/3 css&イベントパート2 javascript

全開の続き。CSSStyleSheetを使っていろいろやる。

<!doctype html>
<!doctype html>
<html>
<head>
<title>test</title>
<style type=”text/css” id=”divsheet”>

div {
background-color: black;
}
p {
background-color: skyblue;
}
</style>
<style type=”text/css” id=”bodysheet”>
body {
background-color: red;
}
</style>
</head>
<body>

<p>testtest</p>
<br>
<br>
<p id=”midp”>真ん中のp</p>

<p id=”middle”></p>…

2018/9/3 css関連とイベント関連 その組み合わせ javascript

五章第二回 CSSの構造

5章自体特に問題はない。こうすればこんなことできますね、的な話。それはそれでいいんですが、イベントを組み合わせて、「クリックしたらスタイルが変わりますね、おもしろいですね」みたいなのを作る。

イベントについては3章を参照。

三章第一回 イベントプロパティ


<html>
<head>
<title>test</title>
<style type=”text/css” id=”divsheet”>

div {
background-color: black;
}
p {
background-color: yellow;
}
</style>
<style type=”text/css” id=”bodysheet”>
body {
background-color: pink;
}
</style>
</head>

<body>
<p>testtest</p>
<br>
<br>
<p onmouseover=”mywrite2();” onclick=”reset2();”>真ん中のp</p>…

2018/9/2 ゲッターとセッターについて javascript

ゲッターとセッター(プロパティ)を定義するには?[JavaScript]

アクセサプロパティ(getterとsetter)

上記ページは具体的なゲッタ・セッタの使用例があるのでそれを理解するところから始める。

具体例でゲッタ・セッタを使うこと自体はできるが、なぜそれを使う必要があるのか?どこで使うべきなのか?がさっぱりわからない。というのも、別にゲッタ・セッタを使わなくても、

obj.prop のように書けばアクセスして値を変更することができるのだが、なぜそれではなく、「ゲッタ・セッタ」を使うのか?


たかがsetter、されどgetter。JavaSciprtでsetterとgetterを実装する4通りの方法

ここで新たな疑問。上記ページの最初にあるのがこのコード。

function A() {
    var a;
    this.getA = function () {
        return "a is " + a;
    };
    this.setA = function (val) {
        a = val;
    };
}