PHP+MySQL入門

挿入画面の制作3

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
エラーメッセージが表示された場合、正しく記入していた内容も消えてしまうと改めて入力しなければなりません。そこでここでは、入力した値を再現する方法を紹介しましょう。
講師:
13:59

字幕

ここでは挿入画面の製作の三つ目としまして前のレッスンで登録したエラーの処理というのをもう少し利用者にとっても分かりやすくなるように作り込んでいきたいと思いますこのレッスンは一つ前のレッスン及びもう一つ前のレッスンの続きとなりますので三つ続けてご覧くださいではプロジェクトを紹介していきますここでは Lesson 02-02 で作ったプロジェクトをそのままLesson 02-03 というかたちでコピーしましたまたデータベースの方にはこのように「genre_master」「item_log」「item_table」というかたちでテーブルが準備されていますもし前のレッスンまでのプロジェクトがうまく完成していないという事であればこちら素材のファイルをダウンロードして利用するようにしてくださいデータベースのエクスポートデータも入っていますので phpmysql というデータベースにインポートして利用するようにしましょうでは製作を続けていきますここではエラーの処理を行いましたので「登録する」ボタンをクリックするとSQL が不正に発行されるという事はなくなりましたしかし利用者にとって例えば「商品名」はこのようにきちんと入れたにも関わらず登録すると何故か消えてしまって何も起こらないというのは非常に分かりにくい画面になってしまいますそこで この 何が起こったのかというのを分かりやすいように作り込んでいきましょう今回このエラーの配列を作りその中にどの項目で どんなエラーが発生したのかというのを分類できるように記録しましたこれは実はここでエラーメッセージを表示しやすくするためにこのような仕組みにしたというわけですでは実際にそれを使いながら実装していきましょうここではこの「カテゴリ」のドロップダウンリストが表示された次の部分 ここですねここに このように記述していきます「if」とし「$error」の「genre_id」こちらで指定している名前と同じエラーの配列がありましてここが「blank」かどうかを判断する事でエラーが発生したかどうかを確認する事ができますそしてここでは「p class」を「$error」としますこちらのスタイルシートは既にスタイルシートの方に準備していますのでこのように指定する事で赤文字等で表示されるようになりますではここでは「カテゴリを選んでください」といったようなエラーメッセージにしたいと思いますそして「endif」で閉じますではまずこれだけ動きを確認していみましょうMAMP がこのように動作している事を確認し ウェブブラウザで今回は「Lesson 02-03」の「input.php」にアクセスをしますそしてそれぞれこのように空白になっている状態で「登録する」ボタンをクリックしてみましょうするとこのように「カテゴリを選んでください」というメッセージが出ましたこれはこの「カテゴリ」が選ばれていないためにこちら 上の方で 「入力チェック」で「genre_id」が空のまま渡されてしまうためこの「$error」という配列の「genre_id」に「blank」という値が入りましたそのためこちらで「if」の「$error」の「genre_id」は「blank」であるという条件が満たされるようになりこの「p」要素が出力されるようになったというわけですそのため「カテゴリ」を正しく選ぶと他の項目が正しく選ばれていないためまだ SQL としては発行されませんがこのようにエラーメッセージは消えるようになりましたでは同様にすべての項目にこの項目を入れていきましょう続いて「商品名」の部分ですこのように今書いたスクリプトをコピーしてこの「genre_id」という部分を「item_name」にするだけで使う事ができますここでは「商品名を入力してください」といったメッセージになります続いて「商品名(カナ)」のところにも同じように このようにコピーしていきましょうそしてこちらを「item_name_kana」とし「商品名(カナ)」としますそして「価格」のところにも同じようにコピーしていきましょうさて こちら「価格」については実はもう一つエラーの種類がありましたここで 19 行目から始まっているんですけれども「price」が空の場合は「blank」なんですが「elseif」空でない場合に続いて「$_POST」の「price」が「is_numeric」という事で数字であるかどうかの判断というのをしていますそして「is_numeric」が否定つまり数字ではない場合というので 次の 22 行目このように「price」が「$error」が「numeric」であるというのを記録していますそのためこれも画面に表示するようにしましょうここではこちらのエラーメッセージの部分に「elseif」というのを記述し「$error」の「price」が「numeric」という条件を加えますそして同じように こうして「価格は数字で入力してください」というエラーメッセージを表示するようにしますこれで完成になりますではスクリプトを見ていきましょうこちら「input.php」を表示しまずは何も記入しない状態で「登録する」ボタンをクリックしますすると このようにすべての項目にエラーメッセージが表示されましたでは ここで「価格」に数字ではないものを入力し「登録する」ボタンをクリックしてみましょうすると このようにエラーメッセージが変わって「価格は数字で入力してください」と出るようになりましたこれで かなり親切な登録画面になりましたがとはいえ まだ困った点が一つあります例えば「商品名」をこのように正しく入力し 「商品名(カナ)」や「価格」が正しく入っていなかった場合登録すると当然ながらエラーとして戻されてしまいますしかし「商品名」自体もまた消えてしまうためもう一度改めて記入しなければならないといったかたちで非常に面倒な画面構成になってしまっていますそこでここではエラーが発生した場合にそれ以外の項目は先程入力していた内容を再現するというのを仕込んでいきたいと思いますではこちら改めて「input.php」を改良していきましょうまずは非常に簡単なとこでこちら「商品名」等のテキストフィールドから作っていきたいと思いますこちら「input」タグテキストフィールドについては「value」属性 というテキストフィールドの初期値を設定するという属性がある事は html をご存知の方なら分かるかもしれません例えばここに「初期値」と入れますと こちら「商品名」には「初期値」というのが出るようになりますそしてこれは「登録する」ボタンをクリックした次の画面でも残るようになりますのでこの「value」属性に今ユーザーが入力した 例えば「バナナ」という情報が反映する事でこちら先程まで入力していたものを再現するという動きを実現する事ができますではこの「value」のところにその 先程入力した内容を反映するというのを実装するにはどうしたら良いでしょうかここではここに「php」を仕込んで「print」の「$_POST」で「item_name」という風に記述しますこれでここに入力した情報が「登録する」ボタンで次の画面でもこのように反映されるという事になりますではこれを同じく各テキストフィールドに仕込んでいきましょう「商品名(カナ)」についても「item_name_kana」として反映する事ができますし続いて数字 こちらの「価格」の部分も「price」として反映する事ができます動きを確認してみます[ばなな」として「商品名(カナ)」を入れ「価格」として「130」と入れます「登録する」ボタンをクリックするとこのようにすべての値が反映されましたただここでは この「カテゴリ」の部分がまだ反映されるようになっていませんでは最後にこれを実装していきましょうこの「カテゴリ」の部分ですがドロップダウンをあらかじめ何か選ばれた状態にするためには ここを「selected」という属性があり ここに「selected="selected"」という風につけてあげますそうするとこのようにフォームを表示した時にあらかじめ選ばれた状態を作る事ができますという事は例えば 「カテゴリ」が今回[野菜]が選ばれて「登録する」をクリックした時はこの「野菜」という部分にこちらの「selected="selected"」というのが入れば次の画面で「野菜」が選ばれたという事になりますではそれを実装するためにはどうしたらいいでしょうかここでは少しスクリプトが長くなっていきますここに if 構文を仕込んでいきます「if」とし[$_POST]の「genre_id」が「1」だった場合として こちらに「selected="selected"」と記述しますそして「else」としまして「option」の「value」を「1」として こちらは「selected」を付けずに記述をしていきますそして二番目の「selected」はとっていきましょうこのようにすると「genre_id」が「1」番の場合 つまり「1」番が選ばれた状態でフォームが送信されるとこちら側オプションが出力されそうでない場合はこちら側のオプションが出力されるというかたちで「selected」の付ける付けないを判別する事ができますでは実際にやってみましょうここでは「登録する」をクリックすると今は何も選ばれていませんが「くだもの」を選んだ状態で「登録する」をクリックするとこのように「くだもの」が選ばれた状態になっていますエラーも出ていませんでは これをそれぞれのオプションに付けていきましょう「2」番の場合は今度は「野菜」が「selected」の「selected」になりますそして「else」としてこのようになりますそして「3」番 「菓子」についても同じようにこのように追加していきましょう「3」番の場合はこちらの「selected」の「selected」となり「else」として「selected」がないものを出力するというかたちになりますこれで完成です動きを確認してみましょう画面を表示するとこのようになり「くだもの」を選ぶと「くだもの」が選ばれ[野菜]を選ぶと[野菜]が選ばれるそして「菓子」を選ぶと「菓子」が選ばれるという状態ですでは最後にこれで登録まで行ってみましょう「キャベツ」を「110」円で登録しますすると このように「商品を登録しました」と出ましてこちら item_table を見ると「キャベツ」が登録されているというわけですこれで入力画面についてはまずは完成です後ほど別の画面との接続等も行っていきますがまずはこれである程度完成した画面と言えるのではないでしょうかユーザーに親切な画面を作るのは非常に難しい面倒くさい作業が待っていますがぜひ手間を掛けて作って親切な画面になるようにしてあげてください

PHP+MySQL入門

MySQLというデータベースはPHPと連携させてウェブサイト上で利用することによってよりその威力を発揮します。このコースではPHPとMySQLを組み合わせたWebシステムを構築する手法を紹介します。コースの後半ではページングの処理の仕方などについて学びながら、具体的に挿入画面や編集画面の作成を行っていきます。

3時間08分 (21 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2014年01月20日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。