PHP กับการออกแบบและวางโครงสร้างหน้า Webpage
ปัญหาสำหรับนักโปรแกรมเมอร์มือใหม่ ๆ ที่จะเริ่มสร้าง Project ขึ้นมาซะ 1 โปรเจค ก็คือการออกแบบและวางโครงสร้างของหน้าเว็บไซต์ เพราะถ้ายังขาดความรู้และการออกแบบที่ดี เช่นการวางโครงสร้างของ header , menu หรือ footer ไม่ได้มีการแยกไว้อย่างเป็นสัดส่วน โดยมีการสร้างเนื้อหาเหล่านั้นไว้ในทุก ๆ ไฟล์ โดยไม่มีการแยกเป็น include ไฟล์เอาไว้ เมื่อ Project เริ่มมีการพัฒนาได้ในระดับหนึ่ง หากต้องการแก้ไขค่าเหล่านี้ ซึ่งเป็นข้อมูลที่ซ้ำ ๆ กันในทุกหน้า Web Page จเห็นว่าจะต้องตามแก้ไขในทุก ๆ ไฟล์ ซึ่งยากต่อการจัดการและการทำงานที่ซ้ำซ้อนเป็นอย่างมาก
โครงสร้างของเว็บไซต์ทั่ว ๆ ไปที่ได้รับความนิยมจะประกอบด้วย 4 ส่วนหลัก ๆ คือ
ดังนั้นจากรูปจะเห็นว่าเว็บไซต์มีการแบ่งโครงสร้างไว้อย่างชัดเชน ดังนั้น เราสามารถแยกส่วนของ
โดยแยก 3 ส่วนนี้ไว้ในไฟล์ .php ต่าง ๆ แล้วทำการ include เข้ามาในไฟล์ โดยตั้งชื่อไฟล์เป็น header.php , menu.php และ footer.php
ในส่วนของ Container เหตุผลที่ไม่แยกเป็นไฟล์นั้น เพราะในส่วนนี้เราจะใส่ Code ของ php ที่เป็นเงื่อนไขในการดึง page ต่าง ๆ มาแสดง
เมื่อแยกไฟล์เหล่านี้ได้แล้วเราสามารถนำมา include เข้าไปในส่วนต่าง ๆ ของโครงสร้างของหน้าเว็บ
การ include โครงสร้างไน้าเว็บ
สิ่งที่ได้เมื่อมีการ include โครงสร้างเข้ามาในหน้า webpage
ซึ่งตอนนี้เราได้ออกแบบเสร็จไป 3 ส่วนแล้วคือ Header , Menu และ Footer ซึ่งยังเหลือในส่วนของ Container ที่ใช้สำหรับการดึงค่าต่าง ๆ ของแต่ล่ะหน้าเว็บไซต์มาแสดงผล
เพิ่มเติม
อันเนื่องจากการออกแบบโครงสร้างหน้าเว็บด้วยวิธีนี้ การทำงานทั้งหมดของหน้าเว็บจะอยู่ที่ไฟล์ index.php ซึ่งเป็นหน้าหลักของเว็บไซต์ และมีส่วนเดียวของเว็บไวต์ที่เปลี่ยนแปลงคือ Container ด้วยวิธีนี้เองในหน้า Menu ของเว็บไวต์ เราจะทำการส่งค่า Parameter เพื่อดึงเนื้อหาส่วนนั้น ๆ มาแสดงผลในหน้าเว็บ
จะเห็นว่าในไฟล์ menu.php มีการส่งตัวแปร index.php?page=service เมื่อเราอ่านค่าด้วย $_GET["page"] ก็จะได้ค่าว่า service ซึ่งในส่วนของ Container สามารถนำค่านี้เพื่อไปกำหนดเงื่อนไขการแสดงได้
รูปการ include หน้า Webpage เข้ามานส่วนของ Container เมื่อมีการคลิกที่เมนู service โดยเรียกไฟล์ชื่อ page_service.php
กรณีที่มีหลาย Web page ก็ใช้ function switch ในการกหนดเงื่อนและดึงเนื้อหาที่ต้องการ
และเมื่อนำไปใช้งานจริง URL ที่ได้จะได้เป็น
ในกรณีที่ไฟล์ default เป็น index.php แล้ว สามารถลบคำว่า index.php ทิ้งได้เลย
โดยแค่ใส่ Link<a href="?page=service">Service</a> ไม่ต้องมี index.php
Code ทั้งหมด
index.php
menu.php
header.php
footer.php
page_home.php
page_service.php
page_product.php
page_aboutus.php
page_contactus.php
Screenshot
โครงสร้างของเว็บไซต์ทั่ว ๆ ไปที่ได้รับความนิยมจะประกอบด้วย 4 ส่วนหลัก ๆ คือ
- Header สำหรับ Logo หรือ Banner ของเว็บไซต์
- Menu สำหรับ Menu ต่าง ๆ
- Footer สำหรับใส่ข้อความใน Footer
- Container คือส่วนของเนื้อหา ที่จะเปลี่ยนเมื่อมีการคลิก Link ต่าง ๆ
- Menu สำหรับ Menu ต่าง ๆ
- Footer สำหรับใส่ข้อความใน Footer
- Container คือส่วนของเนื้อหา ที่จะเปลี่ยนเมื่อมีการคลิก Link ต่าง ๆ
ดังนั้นจากรูปจะเห็นว่าเว็บไซต์มีการแบ่งโครงสร้างไว้อย่างชัดเชน ดังนั้น เราสามารถแยกส่วนของ
- Header
- Menu
- Footer
- Menu
- Footer
โดยแยก 3 ส่วนนี้ไว้ในไฟล์ .php ต่าง ๆ แล้วทำการ include เข้ามาในไฟล์ โดยตั้งชื่อไฟล์เป็น header.php , menu.php และ footer.php
ในส่วนของ Container เหตุผลที่ไม่แยกเป็นไฟล์นั้น เพราะในส่วนนี้เราจะใส่ Code ของ php ที่เป็นเงื่อนไขในการดึง page ต่าง ๆ มาแสดง
เมื่อแยกไฟล์เหล่านี้ได้แล้วเราสามารถนำมา include เข้าไปในส่วนต่าง ๆ ของโครงสร้างของหน้าเว็บ
การ include โครงสร้างไน้าเว็บ
สิ่งที่ได้เมื่อมีการ include โครงสร้างเข้ามาในหน้า webpage
ซึ่งตอนนี้เราได้ออกแบบเสร็จไป 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 สามารถนำค่านี้เพื่อไปกำหนดเงื่อนไขการแสดงได้
รูปการ 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
No comments:
Post a Comment