情報システム設計論II ユーザインタフェース(1)

Similar documents
情報システム設計論II ユーザインタフェース(1)

情報システム設計論II ユーザインタフェース(1)

CMP演習

コンテンツメディアプログラミング実習2

_IMv2.key

( 前回 ) 提出課題 課題 1( 提出課題 ): データベースからデータを読み込み, そのデータを表示する Web ページ作成してみましょう user テーブルから書籍のデータを一覧表示する. 手順 1:PHP のファイルを user_list.php という名前で作業フォルダに作成する. プログ

<4D F736F F D A957A A A8FEE95F18F88979D DEC90AC E646F63>

情報システム設計論II ユーザインタフェース(1)

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web

■新聞記事

2003年度 情報処理概論

JavaScript 演習 2 1

2019年度 Webシステムプログラミングa

Taro php.jtdc

Microsoft PowerPoint - TwitterInsight edit.pptx

情報システム設計論II ユーザインタフェース(1)


10th Developer Camp - B5

Web データ管理 JavaScript (3) (4 章 ) 2011/12/21( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/18

Webプログラミング演習

Microsoft Word - PHP_SQLServer2012

KeyWeb Creator 概要 What s KeyWeb Creator? 動的なホームページを作成するためのツール!! 従来の Web ページ DB を利用した Web ページ <HTML> <HEAD> <TITLE>show_book</TITLE> </HEAD> <BODY> <DI

Si 知識情報処理

hands_on_4.PDF

SmartBrowser_document_build30_update.pptx

位置参照情報 API 仕様 ( 試行版 ) 位置参照情報 API 仕様 ( 試行版 ) Ver 1.0b 平成 26 年 12 月 国土交通省国土政策局国土情報課

JavaScript演習

Webデザイン論

PowerPoint プレゼンテーション

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

JavaScript の使い方

WEBシステムのセキュリティ技術

Lotus Domino XML活用の基礎!

アクセス履歴の確認 アクセス履歴の確認 名刺データへのアクセス履歴を 日単位で確認または月単位でファイル出力できます 日単位の履歴を確認する 名刺データへの過去 1 ヵ月のアクセス履歴を 日単位で確認できます 1 名刺管理画面を表示し 名刺管理 アクセス履歴 の順にクリックします 名刺管理画面の表示

第7回 Javascript入門

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

2019年度 Webシステムプログラミングa

Microsoft PowerPoint _2b-DOM.pptx

LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のよう

アクセス履歴の確認 アクセス履歴の確認 名刺データへのアクセス履歴を 日単位で確認または月単位でファイル出力できます 日単位の履歴を確認する 名刺データへの過去 1 ヵ月のアクセス履歴を 日単位で確認できます 1 名刺管理画面を表示し 名刺管理 アクセス履歴 の順にクリックします 名刺管理画面の表示

intra-mart Accel Platform — 招待機能プログラミングガイド   初版  

PowerPoint プレゼンテーション

6 2 1

フォームとインナー HTML を使って動的にページ内の文章を変更しよう 問題 1. つぎの指示と画面を参考に HTML を組みなさい 仕様 テキストボックスに任意の文字を入力し [ コメント ] ボタンをクリックすると 下部の文章がテキストボックスの内容に置き換わる フォーム名 : f1 テキストボ

untitled

PowerPoint プレゼンテーション

PHP と Postgresql を用いた 図書館管理システムの構築 裘彬濱 Qiu Binbin 南山大学 情報理工学部

Microsoft PowerPoint - myadmin.ppt

2009 Web B012-1

立ち読みページ

◎phpapi.indd

スライド 1

d_appendixB-asp10appdev.indd


Webプログラミング演習

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

目次 DEV for CITIZEN 操作マニュアルの記載内容 ページ数 DEV for CITIZEN について DEV for CITIZEN に係る機能概要およびアクセス方法について記載しています P2 データを確認してみよう DEV for CITIZEN にて公開されているデータの確認方法

勉強会の流れ Google API の概要 デモ curl で実際に体験 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 2

Webデザイン論

SVG資料第10回目(その2) Ajaxによる同期通信と非同期通信の違い

WordPress Go Go

Alchemy API 2

目次 1. 研究の背景と目的 1.1. 背景 1.2. 目的 2. 研究計画 3. 現状報告 3.1. 制作中の Web アプリケーション 使用する技術 概要 機能 課題 参考にしたサイト 書籍 3.2. その他の取り組み 4.

SOC Report

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

<td width=99%><input type="file" size="80" name="file"></td> <td width=1% nowrap align=right valign=top> 削除キー : </td> <td width=99%><input type="passw

JavaScript 1.! DOM Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2

2 Java 35 Java Java HTML/CSS/JavaScript Java Java JSP MySQL Java 9:00 17:30 12:00 13: 項目 日数 時間 習得目標スキル Java 2 15 Web Java Java J

1. はじめにこのドキュメントは IBMi 上のデータを HTML のテーブルで表示するためのカスタマイズ方法について説明するものです この手法を用いることで スムーズなスクロールによる照会画面 (HTML のテーブル ) を 5250 画面に挿 することが出来ます ( 下図参照 ) なお このドキ


第 8 回の内容 クライアントサイド処理 JavaScript の基礎

Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介

4. WIX アタッチエンジン 4. 1 FSDR 処理 システムの Web 資源結合動作であるアタッチ処理について 述べる. アタッチ処理は以下の 4 フェーズに分けられる. この一連の 流れを FSDR 処理とする. Find 処理 Select 処理 Decide 処理 Rewrite 処理


PowerPoint Presentation

Delphi/400開発ノウハウお教えします Googleマップ連携によるリッチなGUIアプリ開発

Microsoft PowerPoint - widget.ppt

JavaScript演習

PowerPoint プレゼンテーション

DB STREET 設置マニュアル

APIリファレンス | IP Geolocation API どこどこJP

ブログ制作教材

: ORDER BY

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) 演習名 使用するフォルダ 演習 1 Z: Web データ管理 演習

Wiki Wiki Wiki...

3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200,

AJAXを使用した高い対話性を誇るポートレットの構築

JavaScript カスタマイズ入門 kintone university アプリデザイナープラス JavaScript カスタマイズ入門編演習問題回答 演習問題 第 2 章サンプルで試そう 1 cybozu.com developer network の サンプルで試そう ( 以下 サンプル と

PostgreSQL の XML 機能解説と将来拡張への提言

intra-mart Accel Platform

PowerPoint プレゼンテーション

Blue Asterisk template

ステップ 1:Cisco Spark にサインアップして試してみよう 1. Spark のホームページ ( で電子メールアドレスを入力し 指示に従って Spark アカウントを作成します 注 : 自身の電子メールアカウントにアクセスして Spar

2 目次 1 はじめに 2 システム 3 ユーザインタフェース 4 評価 5 まとめと課題 参考文献

Webデザイン論

ウェブサイト内検索機能マニュアル

CMP2-3SQL2b.pptx

Nucleus CMS 4.0 の新機能 日本語版リリースマネジャー兼メインコミッター坂本貴史

リスト 1 1 <HTML> <HEAD> 3 <META http-equiv="content-type" content="text/html; charset=euc-jp"> 4 <TITLE> 住所の検索 </TITLE> 5 </HEAD> 6 <BODY> <FORM method=

Microsoft Word - データ保管サービス操作マニュアル(第二版).docx

Transcription:

CMP 実習 2 DB+PHP+XML/JSON+JavaScript 中村, 宮下, 斉藤, 菊池 1

PHP と JavaScript 連携 サーバとクライアントをどうやって繋げるか? PHP と JavaScript 間の情報のやりとりを行う JavaScript JSON/XML PHP DB 簡易的な Web API を作ろう! PHP に GET で情報を送り込むことで XML または JSON を出力する Ajax で PHP に対して要求する JavaScript で XML または JSON を処理する 2

Web API Web API とは? Web 上でアクセス可能な API 様々な情報にアクセスすることが可能 何かの緯度経度, キーワード検索結果, 画像検索結果, 商品検索, 書籍検索, ブックマーク数, 地図, 形態素解析アニメ検索,Facebook,Twitter, メールなどなど 一般的な Web API では URL で情報を取得 http://example.jp/search?query=test&area=10&... ベース URL query=test area=10 3

Web API の内部処理 複数の引数を受け取ることが可能 $x 5 $y 3 x y x, y を利用して処理する なんか 処理機 XML/JSON 形式で結果が取得できる http://example.jp/api?x=$x&y=$y http://example.jp/api?x=5&y=$y XML/JSON 4

演習 いつものサイトに下記 DB を置きました Mt100u.sqlite (UTF-8 版 ) Mt100s.sqlite (Shift JIS 版 ) sqlite3 Mt100u.sqlite で中身を見てみよう create table mountain (id integer, name text, yomi text, height integer, pref text, city text); でテーブルが作成されています 100 名山のテーブル 出典 : 日本の百名山 http://yamadarake.web.fc2.com/yama/list/nihon100.html 5

単にテーブルで表示 <?php // 文字コードに応じて u または s を切り替えて下さい $db = new PDO("sqlite:Mt100s.sqlite"); $db->setattribute(pdo::attr_errmode, PDO::ERRMODE_WARNING); $rows = $db->query("select * from mountain order by height desc"); echo "<table>"; while( $cols = $rows->fetch() ){ echo "<tr><td>"; echo $cols["name"]; echo "</td><td>"; echo $cols["height"]; echo "</td></tr>"; echo "</table>";?> return_html.php 6

XML 化 <?php // 文字コードに応じて u または s を切り替えて下さい $db = new PDO("sqlite:Mt100u.sqlite"); $db->setattribute(pdo::attr_errmode, PDO::ERRMODE_WARNING); // 文字コードに応じて UTF-8 または Shift_JIS を切り替えて下さい $rootnode = new SimpleXMLElement( "<?xml version='1.0' encoding='utf-8'?><items></items>" ); $rows = $db->query("select * from mountain order by height desc"); while( $cols = $rows->fetch() ){ $itemnode = $rootnode->addchild("item"); $itemnode->addchild("name", $cols["name"] ); $itemnode->addchild("height", $cols["height"] ); // XMLとして出力する echo $rootnode->asxml();?> return_xml.php 7

JSON 化 <?php // JSON の場合は utf-8 のみ $db = new PDO( "sqlite:mt100u.sqlite" ); $db->setattribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); $rows = $db->query( "select * from mountain order by height desc" ); $items = array(); while( $cols = $rows->fetch() ){ // array の中身を増やせば色々な情報を出力可能 // ポイントは 名前 => 値 とすること $items [] = array( "name"=>$cols["name"], "height"=>$cols["height"] ); // JSON で出力するという事をヘッダで明示する header( 'Content-type: application/json' ); echo json_encode($items);?> return_json.php 8

演習 XML および JSON で出力する結果に, 百名山の読み (yomi) と県 (pref) の情報を追加しましょう PHP で出力した XML または JSON を JavaScript で処理して表示してみよう! 9

10 API にするってどういうこと? 基本的に GET/POST メソッドで何かの情報を送りつけて, その結果を XML か JSON で返せば OK ということ! ( 例 ) type=json なら json で,type=xml なら xml で返す pref= キーワードで都道府県名で検索 method=view で単純に表示,method=search で検索して表示,method=insert で登録 limit=10 で 10 件,limit=100 で 100 件取得 sort=desc なら降順で,sort=asc なら昇順で取得

<?php // 文字コードに応じて u または s を切り替えて下さい $db = new PDO("sqlite:Mt100u.sqlite"); $db->setattribute(pdo::attr_errmode, PDO::ERRMODE_WARNING); if( isset( $_GET["pref"] ) ){ $query = "select * from mountain where pref like '%". $_GET["pref"]. "%'"; // 文字コードに応じて UTF-8 または Shift_JIS を切り替えて下さい $rootnode = new SimpleXMLElement( "<?xml version='1.0' encoding='utf-8'?><items></items>" ); $rows = $db->query( $query ); while( $cols = $rows->fetch() ){ $itemnode = $rootnode->addchild("item"); $itemnode->addchild("name", $cols["name"] ); $itemnode->addchild("height", $cols["height"] ); $itemnode->addchild("pref", $cols["pref"] ); http://... /return_xml?pref= 長野 // XMLとして出力する echo $rootnode->asxml();?> return_xml.php 11

演習 type で json と xml を切り替える事ができるようにしてみよう hsort で高さの降順, 昇順で並び替えることが出来るようにしてみよう from と to で何 m 以上, 何 m 以下という条件を指定できるようにしてみよう limit で表示件数を指定するようにしてみよう 12

演習 テキストボックスを用意し, 文字が入力される度にその山の場所がどこにあるかという文字を含む結果を取得および表示するプログラムを作成せよ テキストボックスを用意し, 数値が入力される度にその値より大きな山だけ表示するプログラムを作成せよ 13

文字でキーワード検索する例 <html> <head> <script src="../lib/jquery-2.1.1.min.js"></script> <script> $(function(){ $("#pref").on("keyup",function(){ var requrl = "api.php?search=pref&pref=" + encodeuricomponent( $("#pref").val() ); console.log( requrl ); $.ajax({ url: requrl, datatype: "json", success: function(data){ console.log( data ); $('#results').html(""); $('#results').append("<table>"); $('#results').append("<tr><th width=80px> 山名 </th><th width=80px> 高さ </th><th width=80px> 都道府県 </th></tr>") for( var i=0; i<data.length; i++ ){ $('#results').append("<tr><td>" + data[i].name + "</td>" + "<td>" + data[i].height + "</td>" + "<td>" + data[i].pref + "</td></tr>" ); $('#results').append("</table>"); ) ) ); </script> </head> <body> <input type=text id=pref> <div id="results"></div> </body> search.html </html> 14

<?php // JSON の場合は utf-8 のみ $db = new PDO("sqlite:Mt100u.sqlite"); $db->setattribute(pdo::attr_errmode, PDO::ERRMODE_WARNING); $items = array(); if( isset( $_GET["pref"] ) &&!empty( $_GET["pref"]) && $_GET["search"] === "pref" ){ $query = "select * from mountain where pref like '%". $_GET["pref"]. "%'"; $rows = $db->query( $query ); while( $cols = $rows->fetch() ){ $items [] = array( "name"=>$cols["name"], "height"=>$cols["height"], "pref"=>$cols["pref"]); // json で出力するという事をヘッダで明示する header('content-type: application/json'); echo json_encode($items);?> api.php 15

API 化のメリット しっかりした API さえ用意しておけば, 色々なものから活用することが可能 すべての結果を取得するのではなく部分的に取得して利用 Ajax を使った画面遷移のないページを作ろうと思った時には必須 ブラウザ拡張などを実装するときには必須! 16