Showing posts with label PHP กับการออกแบบและวางโครงสร้างหน้า Webpage. Show all posts
Showing posts with label PHP กับการออกแบบและวางโครงสร้างหน้า Webpage. Show all posts

Wednesday, September 26, 2012

PHP กับการออกแบบและวางโครงสร้างหน้า Webpage


PHP กับการออกแบบและวางโครงสร้างหน้า Webpage

ปัญหาสำหรับนักโปรแกรมเมอร์มือใหม่ ๆ ที่จะเริ่มสร้าง Project ขึ้นมาซะ 1 โปรเจค ก็คือการออกแบบและวางโครงสร้างของหน้าเว็บไซต์ เพราะถ้ายังขาดความรู้และการออกแบบที่ดี เช่นการวางโครงสร้างของ header , menu หรือ footer ไม่ได้มีการแยกไว้อย่างเป็นสัดส่วน โดยมีการสร้างเนื้อหาเหล่านั้นไว้ในทุก ๆ ไฟล์ โดยไม่มีการแยกเป็น include ไฟล์เอาไว้ เมื่อ Project เริ่มมีการพัฒนาได้ในระดับหนึ่ง หากต้องการแก้ไขค่าเหล่านี้ ซึ่งเป็นข้อมูลที่ซ้ำ ๆ กันในทุกหน้า Web Page จเห็นว่าจะต้องตามแก้ไขในทุก ๆ ไฟล์ ซึ่งยากต่อการจัดการและการทำงานที่ซ้ำซ้อนเป็นอย่างมาก


โครงสร้างของเว็บไซต์ทั่ว ๆ ไปที่ได้รับความนิยมจะประกอบด้วย 4 ส่วนหลัก ๆ คือ

- Header สำหรับ Logo หรือ Banner ของเว็บไซต์
- Menu สำหรับ Menu ต่าง ๆ
- Footer สำหรับใส่ข้อความใน Footer
- Container คือส่วนของเนื้อหา ที่จะเปลี่ยนเมื่อมีการคลิก Link ต่าง ๆ


PHP and Web Site Structure

ดังนั้นจากรูปจะเห็นว่าเว็บไซต์มีการแบ่งโครงสร้างไว้อย่างชัดเชน ดังนั้น เราสามารถแยกส่วนของ

- Header
- Menu
- Footer


โดยแยก 3 ส่วนนี้ไว้ในไฟล์ .php ต่าง ๆ แล้วทำการ include เข้ามาในไฟล์ โดยตั้งชื่อไฟล์เป็น header.php , menu.php และ footer.php

ในส่วนของ Container เหตุผลที่ไม่แยกเป็นไฟล์นั้น เพราะในส่วนนี้เราจะใส่ Code ของ php ที่เป็นเงื่อนไขในการดึง page ต่าง ๆ มาแสดง

เมื่อแยกไฟล์เหล่านี้ได้แล้วเราสามารถนำมา include เข้าไปในส่วนต่าง ๆ ของโครงสร้างของหน้าเว็บ

การ include โครงสร้างไน้าเว็บ

PHP and Web Site Structure


สิ่งที่ได้เมื่อมีการ include โครงสร้างเข้ามาในหน้า webpage

PHP and Web Site Structure


ซึ่งตอนนี้เราได้ออกแบบเสร็จไป 3 ส่วนแล้วคือ Header , Menu และ Footer ซึ่งยังเหลือในส่วนของ Container ที่ใช้สำหรับการดึงค่าต่าง ๆ ของแต่ล่ะหน้าเว็บไซต์มาแสดงผล

เพิ่มเติม
อันเนื่องจากการออกแบบโครงสร้างหน้าเว็บด้วยวิธีนี้ การทำงานทั้งหมดของหน้าเว็บจะอยู่ที่ไฟล์ index.php ซึ่งเป็นหน้าหลักของเว็บไซต์ และมีส่วนเดียวของเว็บไวต์ที่เปลี่ยนแปลงคือ Container ด้วยวิธีนี้เองในหน้า Menu ของเว็บไวต์ เราจะทำการส่งค่า Parameter เพื่อดึงเนื้อหาส่วนนั้น ๆ มาแสดงผลในหน้าเว็บ

01.<!-- Menu -->
02.<table width="150"  border="0">
03.<tr>
04.<td><div align="center"><a href="index.php?page=home">Home</a></div></td>
05.</tr>
06.<tr>
07.<td><div align="center"><a href="index.php?page=service">Service</a></div></td>
08.</tr>
09.<tr>
10.<td><div align="center"><a href="index.php?page=product">Product</a></div></td>
11.</tr>
12.<tr>
13.<td><div align="center"><a href="index.php?page=aboutus">About Us</a></div></td>
14.</tr>
15.<tr>
16.<td><div align="center"><a href="index.php?page=contactus">Contact Us</a></div></td>
17.</tr>
18.</table>


จะเห็นว่าในไฟล์ menu.php มีการส่งตัวแปร index.php?page=service เมื่อเราอ่านค่าด้วย $_GET["page"] ก็จะได้ค่าว่า service ซึ่งในส่วนของ Container สามารถนำค่านี้เพื่อไปกำหนดเงื่อนไขการแสดงได้


PHP and Web Site Structure

รูปการ include หน้า Webpage เข้ามานส่วนของ Container เมื่อมีการคลิกที่เมนู service โดยเรียกไฟล์ชื่อ page_service.php

01.<!-- Container -->
02.<?
03.switch ($_GET["page"]) {
04.case "home":
05.include("page_home.php");
06.break;
07.case "service":
08.include("page_service.php");
09.break;
10.case "product":
11.include("page_product.php");
12.break;
13.case "aboutus":
14.include("page_aboutus.php");
15.break;
16.case "contactus":
17.include("page_contactus.php");
18.break;
19.default:
20.include("page_home.php");
21.}
22.?>


กรณีที่มีหลาย Web page ก็ใช้ function switch ในการกหนดเงื่อนและดึงเนื้อหาที่ต้องการ

และเมื่อนำไปใช้งานจริง URL ที่ได้จะได้เป็น
http://www.thaicreate.com/index.php?page=service


ในกรณีที่ไฟล์ default เป็น index.php แล้ว สามารถลบคำว่า index.php ทิ้งได้เลย
โดยแค่ใส่ Link<a href="?page=service">Service</a> ไม่ต้องมี index.php
http://www.thaicreate.com/?page=service



Code ทั้งหมด

index.php
01.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
03.<html>
04.<head>
05.<title>ThaiCreate.Com</title>
06.<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
07.</head>
08. 
09.<body>
10.<table width="100%" border="1">
11.<tr>
12.<td colspan="2"><div align="center">
13. 
14.<!-- Header -->
15.<? include("header.php"); ?>
16. 
17.</div></td>
18.</tr>
19.<tr>
20.<td width="24%"><div align="center">
21. 
22.<!-- Menu -->
23.<? include("menu.php"); ?>
24. 
25.</div></td>
26.<td width="76%">
27. 
28.<!-- Container -->
29.<?
30.switch ($_GET["page"]) {
31.case "home":
32.echo "Home";
33.include("page_home.php");
34.break;
35.case "service":
36.echo "Home -> Service";
37.include("page_service.php");
38.break;
39.case "product":
40.echo "Home -> Product";
41.include("page_product.php");
42.break;
43.case "aboutus":
44.echo "Home -> About Us";
45.include("page_aboutus.php");
46.break;
47.case "contactus":
48.echo "Home -> Contact Us";
49.include("page_contactus.php");
50.break;
51.default:
52.echo "Home";
53.include("page_home.php");
54.}
55.?>
56. 
57.</td>
58.</tr>
59.<tr>
60.<td colspan="2"><div align="center">
61. 
62.<!-- Footer -->
63.<? include("footer.php"); ?>
64. 
65.</div></td>
66.</tr>
67.</table>
68.</body>
69.</html>


menu.php
01.<table width="150"  border="0">
02.<tr>
03.<td><div align="center"><a href="index.php?page=home">Home</a></div></td>
04.</tr>
05.<tr>
06.<td><div align="center"><a href="index.php?page=service">Service</a></div></td>
07.</tr>
08.<tr>
09.<td><div align="center"><a href="index.php?page=product">Product</a></div></td>
10.</tr>
11.<tr>
12.<td><div align="center"><a href="index.php?page=aboutus">About Us</a></div></td>
13.</tr>
14.<tr>
15.<td><div align="center"><a href="index.php?page=contactus">Contact Us</a></div></td>
16.</tr>
17.</table>


header.php
1.<table width="100%"  border="0">
2.<tr>
3.<td width="27%"><div align="center"><strong>Your Logo</strong></div></td>
4.<td width="73%"><img src="468x60.gif" width="468" height="60"></td>
5.</tr>
6.</table>


footer.php
1.<table width="100%"  border="0">
2.<tr>
3.<td><div align="center"><strong>CopyRight 2011</strong></div></td>
4.</tr>
5.</table>


page_home.php
1.<table width="569" height="255"  border="0">
2.<tr>
3.<td bgcolor="#FFCCCC"><div align="center"><h1>Home</h1>
4.</div></td>
5.</tr>
6.</table>


page_service.php
1.<table width="569" height="255"  border="0">
2.<tr>
3.<td bgcolor="#00CC66"><div align="center"><h1>Service</h1>
4.</div></td>
5.</tr>
6.</table>


page_product.php
1.<table width="569" height="255"  border="0">
2.<tr>
3.<td bgcolor="#CCCCFF"><div align="center"><h1>Product</h1>
4.</div></td>
5.</tr>
6.</table>


page_aboutus.php
1.<table width="569" height="255"  border="0">
2.<tr>
3.<td bgcolor="#99CC33"><div align="center"><h1>About Us</h1>
4.</div></td>
5.</tr>
6.</table>


page_contactus.php
1.<table width="569" height="255"  border="0">
2.<tr>
3.<td bgcolor="#33CCFF"><div align="center"><h1>Contact Us</h1>
4.</div></td>
5.</tr>
6.</table>



Screenshot

PHP and Web Site Structure


PHP and Web Site Structure


PHP and Web Site Structure


PHP and Web Site Structure