SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プログラミング未経験から始めるPHP入門

ECサイトの商品詳細画面を作成しよう!
プログラミング未経験から始めるPHP入門~応用編(6)

第13回

ダウンロード サンプルコード (7.4 KB)

商品一覧画面(実装)

 サンプルソースのoriginalフォルダの中にあるitem_list.phpを開いてください。これは第11回で実装した、ブラッシュアップ後のプログラムです。

 このプログラムの詳細画面へのリンク先URL(114行目)に、商品コードのGETリクエストを追加してみましょう。

 動作を確認する場合は、C:\xampp\htdocs\ec\item_list.phpとして上書き保存し、商品一覧画面にアクセスしてください。現状はまだ詳細画面を実装していないため、ブラウザはエラー画面を表示しますが、遷移先のURLに商品コードが付加されていることを確認しましょう。

 では、以下に解答例の1つを紹介します。114行目に

<a href="item_detail.php">

というタグがありますが、これが詳細画面へのリンクの部分です。この部分を次のように書き換え、商品コードを付加するよう動作させます。

<a href="item_detail.php?code=<?php print(htmlspecialchars( $item["item_code"] ) ); ?>">

 HTMLのコード内にPHPタグが部分的に記述されているため、どのように商品コードが表示されるかが分かりにくいかもしれません。実際に画面にアクセスして、ソースを表示し、生成されたHTMLを確認してみましょう。

 リコーダーは

<a href="item_detail.php5?code=1004">

となっており、チェロは

<a href="item_detail.php5?code=2002">

となっているはずです。これで商品コードの送信ができるようになりました。なお、回答プログラムを、サンプルソースのSTEP1フォルダの中に格納しておきました。自分の記述したコードと見比べてみてください。

商品詳細画面(設計)

 次に、詳細画面の処理の流れを考えてみましょう。リクエストの中身は、$_REQUESTという特殊な変数に格納されていることを思い出してください。この前提で、次のように処理を組み立てます。

  • 処理(1):$_REQUEST["code"]に格納されている商品コードを元に、商品情報をデータベースより取得。
  • 処理(2):取得した商品情報を画面に表示。

 それでは、実装に入ります。

商品詳細画面(実装)

 サンプルソースのoriginalフォルダの中にあるitem_detail.phpを開き、「以下の$sql変数に適切なSELECT文を記述し、一覧画面から画面遷移できるようにして下さい。」というコメント文がある箇所を探してください。この箇所の$sqlに、SELECT文を記述してみましょう。

 動作を確認する場合は、C:\xampp\htdocs\ec\item_detail.phpとして上書き保存し、商品詳細画面にアクセスしてください。

 では、解答です。$sql内に格納されるSQL文は、次のようになります。

$sql = "select * from m_items where item_code = ? ";

 item_codeを特定する?(クエスチョンマーク)の箇所には、その下の文で、一覧画面から引き継がれた$_REQUEST["code"]を指定しています。

$res = $stmt->execute(
	array( $_REQUEST["code"] )
);

 なお、回答プログラムはサンプルソースのSTEP2フォルダの中にあります。

まとめ

 今回は、詳細画面を実装しました。第5回の入力フォームで学習した、GET方式のリクエストはHTMLのリンク部分に直接記述できます。このようなリクエストの使い方は、amazonなどのECサイトやmixiなどのSNSサイトでも多く使われているので、普段よく使うサイトのURLにも注目してみると、新しい発見があるかもしれません。それでは、今回のまとめです。

今回のまとめ
  • 2つの画面を連動させるための1つの方法として、遷移先の画面の URL に GET 方式のリクエストを付加する方法がある。
  • GET 方式のリクエストはリンク先の URL に直接記述することができ、入力フォームを介さなくても送信できる。

 次回はいよいよ、ECサイトには欠かせないショッピングカートを実装します。段々と難しくなってきましたが、ショッピングカートを実装すればもう後一息です。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
プログラミング未経験から始めるPHP入門連載記事一覧

もっと読む

この記事の著者

大家 正登(オオイエ マサト)

デジタルハリウッド『PHP 講座』講師。学生時代、スペイン語を専攻していたものの何故かプログラム言語に心が傾き、近所のフリープログラマーに弟子入り修行。その後中堅 SIer に 3 年間所属し、現在はフリーエンジニア。仕事の傍らジャズを演奏し、コントラバス 2 台と同居中。(ITエンジニア・大家正登のWeb...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4473 2009/10/22 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー