PROGRAMMING
PHP
- urlのパラメータに配列を使用する
- テキストファイルの操作
- テキストファイルの重複行を単一化
- PDOでデータベース操作
- PHPでJSON形式のデータを出力する
- ログイン画面の作成
javascript
- ページャーを作る(簡易版)
- ページャーを作る 4/4
(クロスブラウザ対策)
(ページャー表示用メソッド)
(ページャーの使い方) - ページャーを作る 3/4
(イベント登録) - ページャーを作る 2/4
(スタイルの設定) - ページャーを作る 1/4
(ページャー用関数を準備)
(各要素を生成) - 自作カレンダーを作る 6/6
(11.~14.各種メソッド)
(15.簡単な使い方) - 自作カレンダーを作る 5/6
(09.祝休日の判定)
(10.閏年の判定) - 自作カレンダーを作る 4/6
(08.イベントの設定) - 自作カレンダーを作る 3/6
(07.スタイルの設定) - 自作カレンダーを作る 2/6
(05.カレンダーのマスのみ作成)
(06.各マスへ年月・日付を埋め込み) - 自作カレンダーを作る 1/6
(01.カレンダーの基を準備)
(02.各月の日数や年月日の区切り文字)
(03.前月・次月指定時の処理)
(04.前月・次月部分の年月を算出) - JS-Image-Resizerを使って画像を高画質で縮小
- ファイルを作成しローカルに保存
- モーダルウィンドウをクラス化
- ストップウォッチを作る
- XMLHttpRequest Lebel2を試してみる
- jQuery:Tableで親・子・兄弟要素を取得
- 文字列をセパレータ文字で分割し配列で返す関数
- forループのカウンタを使用している関数の定義
- クロージャの使いどころ
- JSONPでクロスドメイン
- AjaxでJSON形式のデータを扱う
- jsファイルからjsファイルを呼び出す
- jQuery:モーダルウィンドウを作ってみる
CSS
- フォルダ構成をCSSで見やすくする
- シンタックスハイライトPrismのカスタマイズ
- リスト(li)を中央に配置する
- ブロックレベル要素全体をリンクにする
- 実践と点線の交わり部分のギザギザをすっきりさせる
Java
- IntelliJ.Gradle.JavaFX(6) プラグイン org.beryx.jlink を使ってみる
- IntelliJ.Gradle.JavaFX(5) NSISでインストーラーを作る
- IntelliJ.Gradle.JavaFX(4) exewrapで実行可能jarをexe化する
- IntelliJ.Gradle.JavaFX(3) Jlink でカスタム JRE を作る
- IntelliJ.Gradle.JavaFX(2) すべての依存対象を含んだ Fatjar を作る
- IntelliJ.Gradle.JavaFX(1) アプリケーションを作る
- javaのコンパイルと実行
- イメージを回転する
- Exif情報を簡単に取得できるライブラリ
- 高画質で画像縮小
- JDBCによるデータベース操作
PHPでJSON形式のデータを出力する
ページ内の一部を書き換えする場合はAjaxが使われますが、その場合のリクエスト先はPHPが多いと思います。
PHPを使う理由のひとつはデータベースへの問い合わせ結果を得るためで、その結果をJSON形式で返す場合ほとんどだと思います。
そこで、PHPからJSON形式のデータを出力してみます。
データベースのテーブルの内容は次のようになっています。
code | team | name | age | sex |
---|---|---|---|---|
1 | A | 田中 | 25 | 男 |
2 | A | 佐藤 | 42 | 男 |
3 | A | 鈴木 | 32 | 女 |
4 | B | 山本 | 40 | 女 |
5 | B | 伊藤 | 35 | 男 |
6 | B | 山田 | 28 | 女 |
JSONを出力するPHP
javascriptからのリクエストを受けて、JSON形式でデータを返すPHPです。
try {
$conn = new PDO($dsn, "user", "password");
$sql = "SELECT name, age, sex FROM member";
$stmt = $conn->query($sql);
// 問い合わせ結果を配列に格納
while ($row = $stmt->fetch(PDO::FETCH_BOTH)) {
$kekka[] = array(
"name"=>$row[0],
"age"=>$row[1],
"sex"=>$row[2]);
}
echo json_encode($kekka); // 配列などの値をJSON形式にした文字列で返す
} catch (PDOException $e) {
echo 'ERROR:'.$e->getMessage();
die();
}
12行目だけがポイントで、その他のコードはデータベースの処理だけです。 12行目で、データベースの問い合わせ結果をjson_encode関数に渡し、JSON形式の文字列にしたうえで javascriptに返しています。
javascriptでPHPへリクエストし、JSONデータを受け取る
javascriptからPHPへリクエストし、受け取ったJSONを見やすいように加工して表示します。
var req = new XMLHttpRequest();
req.open('GET', "response.php", true);
req.onreadystatechange = function(){
if((req.readyState == 4) && (req.status == 200)){
// 返却されたテキストをjavascriptのオブジェクトに変換
var data= JSON.parse(req.responseText);
// 結果を表示するエリアを取得
var disp = document.getElementById("disp");
// dataを見やすいように加工する
var htmlStr = "";
for(var i in data){
htmlStr += data[i].name + ":" +
data[i].age + "歳:" +
data[i].sex + "<br>";
}
// 結果を表示
disp.innerHTML = htmlStr;
}
};
req.send("");
6行目のJSON.parseで受け取ったテキストデータをjavascriptのオブジェクトに変換しています。
田中:25歳:男
佐藤:42歳:男
鈴木:32歳:女
山本:40歳:女
伊藤:35歳:男
山田:28歳:女
因みに下のコードのようにJSON.parseや加工処理を外して、直接受け取ったJSONデータを表示するように書き換えしたところ、次のようになりました。
var req = new XMLHttpRequest();
req.open('GET', "response.php", true);
req.onreadystatechange = function(){
if((req.readyState == 4) && (req.status == 200)){
// 結果を表示するエリアを取得
var disp = document.getElementById("disp");
// 結果を表示
disp.innerHTML = req.responseText;
}
};
req.send("");
[
{"name":"\u7530\u4e2d","age":"25","sex":"\u7537"},
{"name":"\u4f50\u85e4","age":"42","sex":"\u7537"},
{"name":"\u9234\u6728","age":"32","sex":"\u5973"},
{"name":"\u5c71\u672c","age":"40","sex":"\u5973"},
{"name":"\u4f0a\u85e4","age":"35","sex":"\u7537"},
{"name":"\u5c71\u7530","age":"28","sex":"\u5973"}
]
上の結果は見やすいように改行を入れてあります。
実際は改行無しで1行で表示されました。