blob: 974e43739a099da5ae084363424fcb209ff29be5 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= PHPを使用するデータベース駆動型アプリケーションの作成
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: PHPを使用するデータベース駆動型アプリケーションの作成 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, PHPを使用するデータベース駆動型アプリケーションの作成
= レッスン8: CSSテクノロジを使用したアプリケーションの外観の改良
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: レッスン8: CSSテクノロジを使用したアプリケーションの外観の改良 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, レッスン8: CSSテクノロジを使用したアプリケーションの外観の改良
このレッスンでは、次のことを行う方法を学習します。
現在のドキュメントは、PHP向けのNetBeans IDEでのCRUDアプリケーションの作成というPHPチュートリアルの一部です。
== 前のレッスンからのアプリケーション・ソース・コード
MySQLユーザー: 前のレッスンが完了した後のプロジェクトの状態を反映したソース・コードをダウンロードするには、link:https://netbeans.org/files/documents/4/1933/lesson7.zip[+ここ+]をクリックします。
Oracleデータベース・ユーザー: 前のレッスンが完了した後のプロジェクトの状態を反映したソース・コードをダウンロードするには、link:https://netbeans.org/projects/www/downloads/download/php%252Foracle-lesson7.zip[+ここ+]をクリックします。
== フォームの非表示
現時点で、アプリケーションのメインの `index.php` ページには、常にログオンおよびshowWishListフォームの全体が表示されます。アプリケーションの外観を改良するために、フォームを非表示にしてボタンに置き換えることができます。ユーザーがボタンを押すと、対応する非表示フォームが拡張されます。
この動作を実装するには:
1. `index.php` ファイルの終了</body>タグの直前に、<script></script>ブロックを追加します。
2. <<javaScriptFunctions,<script></script>タグ内に2つのJavaScript関数を開発します>>。
3. <<showHideLogonInIndex,index.phpファイルに小さな変更をいくつか行います。>>
=== JavaScript関数
JavaScript関数は入力パラメータを必要とせず、結果を返しません。次のコードは、対応するフォームの可視状態を確認し、反対の状態に変更します。また、ボタン上のテキストも変更します。これらの変更を完了するには、次のコードを<script></script>タグ内に入力します。
[source,xml]
----
<script>
function showHideLogonForm() {
if (document.all.logon.style.visibility == "visible"){
document.all.logon.style.visibility = "hidden";
document.all.myWishList.value = "My Wishlist >>";
}
else {
document.all.logon.style.visibility = "visible";
document.all.myWishList.value = "<< My Wishlist";
}
}
function showHideShowWishListForm() {
if (document.all.wishList.style.visibility == "visible") {
document.all.wishList.style.visibility = "hidden";
document.all.showWishList.value = "Show Wish List of >>";
}
else {
document.all.wishList.style.visibility = "visible";
document.all.showWishList.value = "<< Show Wish List of";
}
}
</script>
----
=== `index.php` の更新
1. ログオン・フォームに、次の `style` 属性を追加します。
[source,php]
----
<form name="logon" action="index.php" method="POST"
style="visibility:<?php if ($logonSuccess) echo "hidden";
else echo "visible";?>">
----
`style` 属性は、フォームが非表示か可視かを定義します。<?php?>ブロックは、ユーザーが正常にログオンするまでフォームを可視のままにするために使用されます。
[start=2]
. ログオン入力フォーム・コードの上に、次のコードを入力します。
[source,php]
----
<input type="submit" name="myWishList" value="My Wishlist"> onclick="javascript:showHideLogonForm()"/>
----
このコードは、「My Wishlist >>」というテキストを持つボタンを実装します。ログオン・フォームのかわりにボタンが表示されます。ボタンを押すと、showHideLogonForm関数がコールされます。
[start=3]
. wishListフォームに `style` 属性を追加します。
[source,xml]
----
<form name="wishList" action="wishlist.php" method="GET" style="visibility:hidden">
Show wish list of: <input type="text" name="user"/>
<input type="submit" value="Go" />
</form>
----
[start=4]
. wishListフォームの上に、次のコードを入力します。
[source,xml]
----
<input type="submit" name="showWishList" value="Show Wish List of" onclick="javascript:showHideShowWishListForm()"/>
----
[start=5]
. 次のコードはすでにボタンにあるので、フォームから除去します。
[source,php]
----
Show wishlist of:
----
== Cascading Style Sheetを使用したスタイルの定義
現在、アプリケーション内のコントロールは互いに「くっついて」おり、通常は画面の左上隅に配置されています。アプリケーションのページの外観を改良するには、スタイルを定義し、そのスタイルを特定のコントロールに割り当てることによって、コントロールのサイズ、位置、色、フォント、およびその他のパラメータを指定します。スタイルは個別のCascading Style Sheet (CSS)ファイルで定義されます。
アプリケーションのデザインに関する推奨および提案は、すべてオプションです。次のスタイル定義は、アプリケーションの外観の改良の例を示しています。この設定は、画面解像度1024x768ピクセル以上に適しています。
=== CSSファイルの作成
1. 「ソース・ファイル」ノードでマウスの右ボタンをクリックし、コンテキスト・メニューから「新規」>「Cascading Style Sheet」を選択します。
2. Cascading Style Sheet」パネルで、「ファイル名」編集ボックスに「wishlist」と入力します。「終了」をクリックします。
image::images/newCascadingStyleSheetFile.png[]
新しいファイル `wishlist.css` がプロジェクト・ツリーに表示されます。
=== CSSスタイルの定義
wishlist.cssファイルを開きます。ファイルには、除去可能な「root」クラスがすでに含まれています。link:https://netbeans.org/files/documents/4/1934/lesson8.zip[+ここ+]から入手できるこのチュートリアルの完成したバージョンをダウンロードすることによって、 `wishlist.css` のコピーを取得できます。コードは直観的にわかりやすく、また、次のものが含まれています。
* 2つのスタイル: body」および「input - 任意の `<body></body>` または `<input/>` タグの内部に自動的に適用されます。
* 明示的に指定されたときに適用される、CSSクラス。クラス名は、 `.createWishList` のように、前にドットがあります。一部のクラスは複数回使用され、たとえば、「.error」クラスはアプリケーションのすべてのエラー・メッセージに適用されます。「.showWishList」、「.logon」など、その他のクラスは1度のみ使用されます。
== HTMLdivを使用したデザインの実装
アプリケーションのデザインに関する推奨および提案は、すべてオプションです。前述のスタイルの定義と同じように、アプリケーションの外観を改良する方法の例を示しています。
次の例で、 `index.php` ページの外観を改良する方法を示します。
1. 定義したCSSクラスを使用できるようにするには、次のコードを `<head></head>` ブロック内に入力します。
[source,html]
----
<link href="wishlist.css" type="text/css" rel="stylesheet" media="all" />
----
スタイル「body」と「input」は対応するタグ内に自動的に適用されるため、明示的に指定する必要はありません。
[start=2]
. 別のスタイル(クラス)を領域に適用するには、領域を実装するコードを `<div class=""></div>` タグで囲みます。
[source,html]
----
<div class="showWishList">
<input type="submit" name="showWishList" value="Show Wish List of >>" onclick="javascript:showHideShowWishListForm()"/>
<form name="wishList" action="wishlist.php" method="GET" style="visibility:hidden">
<input type="text" name="user"/>
<input type="submit" value="Go" />
</form>
</div>
----
*注意:* クラスが<div>タグの内部で指定されている場合、前にドットを置く必要はありません。
[start=3]
. 次の埋込み<div>タグを使用できます。
[source,html]
----
<div class="logon">
<input type="submit" name="myWishList" value="My Wishlist" onclick="javascript:showHideLogonForm()"/>
<form name="logon" action="index.php" method="POST"
style="visibility:<?php if ($logonSuccess) echo "hidden"; else echo "visible";?>">
Username: <input type="text" name="user"/>
Password: <input type="password" name="userpassword"/><br/>
<div class="error">
<?php
if (!$logonSuccess) echo "Invalid name and/or password";
?>
</div>
<input type="submit" value="Edit My Wish List"/>
</form>
</div>
----
クラス「logon」がフォーム全体に適用され、クラス「error」がフォーム内のエラー・メッセージに適用されます。
Cascading Style Sheet (CSS)の使用については、link:http://www.htmlpedia.org/wiki/List_of_CSS_Properties[+http://www.htmlpedia.org/wiki/List_of_CSS_Properties+]を参照してください。
== 現在のレッスン完了後のアプリケーション・ソース・コード
MySQLユーザー: サンプルのデザインおよびCSSファイルを含むソース・コードをダウンロードするには、link:https://netbeans.org/files/documents/4/1934/lesson8.zip[+ここ+]をクリックします。
Oracleデータベース・ユーザー: サンプルのデザインおよびCSSファイルを含むソース・コードをダウンロードするには、link:https://netbeans.org/projects/www/downloads/download/php%252Foracle-lesson8.zip[+ここ+]をクリックします。
PDO: コミュニティのメンバーであるGoran Miskovic氏のご厚意で提供されたPDOバージョンの完全なチュートリアルは、link:https://netbeans.org/projects/www/downloads/download/php/wishlist-pdo.zip[+ここ+]から入手できます。このプロジェクトでは、DSNパラメータを変更することによって、Oracle XEとMySQLデータベースを簡単に切り替えることができます。プロジェクトには必要なすべてのSQLスクリプトが含まれ、コード内に説明があります。ただし、PDO_OCIは試験段階であることに注意してください。
NetBeans IDEチームは、CSSを提供して、完成したサンプルのコードを改良されたOzan Hazer氏に感謝申し上げます。
== 次の手順
link:wish-list-lesson7.html[+<< 前のレッスン+]
link:wish-list-lesson9.html[+次のレッスン>>+]
link:wish-list-tutorial-main-page.html[+チュートリアルのメイン・ページに戻る+]
link:/about/contact_form.html?to=3&subject=Feedback:%20PHP%20Wish%20List%20CRUD%200:%20Using%20and%20CSS[+このチュートリアルに関するご意見をお寄せください+]
link:../../../community/lists/top.html[+users@php.netbeans.orgメーリング・リストに登録する+]ことによって、NetBeans IDE PHP開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。
link:../../trails/php.html[+PHPの学習に戻る+]