အခုဆိုရင္ က်ေနာ္တို႔ေတြ ေရွ႕မွာ ေလ့လာခဲ့ သေလာက္နဲ႔ အျပင္ေလာကမွာ သံုးေနတဲ့ ပံုစံမ်ိဳးေတြ ေရးလို႔ရပါပီ။ PHP web programming မွာ HTML form ေတြ အသံုးျပဳၿပီး site visitor ေတြဆီကေန information ေတြ ယူမယ္၊ ၿပီးရင္ PHP ကို သံုးၿပီး အဲဒီ data ေတြကို တြက္ခ်က္မႈေတြ လုပ္မယ္ ဆိုတဲ့ ပံုစံ အမ်ားဆံုး သံုးရမွာပါ။ ဒီ lesson မွာေတာ့ ေစ်းဆိုင္တစ္ဆိုင္ရဲ႕ order form တစ္ခုကို ႐ိုး႐ိုးရွင္းရွင္း ေရးၾကည့္ပါမယ္။ ကဲ စဥ္းစားၾကည့္ရေအာင္ဗ်ာ။ စာေရးကိရိယာ စတိုးေပါ့ဗ်ာ။ အဲေတာ့ စာအုပ္၊ ခဲတံ၊ ေပတံ၊ ခဲဖ်က္ စတာေတြ ေရာင္းမယ္ေပါ့။ customer ေတြ ဆီကေန order information ေတြ ယူရမယ္ဗ်ာ။ အဲအတြက္ HTML form page တစ္ခု ေဆာက္ရမယ္။
(ဒီဟာက နမူနာ သက္သက္ အတြက္ပဲေနာ္။ တကယ့္ အျပင္ project ေတြမွာေတာ့ ဒီလိုသံုးလို႔ ဘယ္သင့္ေတာ္မလဲ.. )
Creatng the HTML Form
ပထမအေနနဲ႔ customer ေတြ သူတို႔ ဘာဝယ္ခ်င္လဲ ဆိုတာ ေရြးႏိုင္ဖို႔ HTML form တစ္ခု ေဆာက္ပါမယ္။ order.html လို႔ သိမ္းေပးပါ။
<html>
<body>
<h4>Goo Stationery Order Form</h4>
<form>
<select>
<option>Book</option>
<option>Pencil</option>
<option>Ruler</option>
<option>Eraser</option>
</select>
Quantity: <input type="text" />
<input type="submit" />
</form>
</body>
</html>
form ကေတာ့ ရသြားၿပီ။ ဒီform ကို submit လုပ္တဲ့ အခါမွာ ဘယ္ page ကို ေခၚၿပီး process လုပ္ခိုင္းမယ္။ ဘယ္ data ေတြကို variable အျဖစ္နဲ႔ ထည့္ေပးလိုက္မယ္ ဆိုတာေတြ ထည့္ေပးရပါဦးမယ္။ code ကို နည္းနည္း ထပ္ျပင္မယ္။ ေအာက္ကလို ျဖစ္သြားပါမယ္။
<html>
<body>
<h4>Goo Stationery Order Form</h4>
<form action="process.php" method="post">
<select name="item">
<option>Book</option>
<option>Pencil</option>
<option>Ruler</option>
<option>Eraser</option>
</select>
Quantity: <input type="text" name="quantity" />
<input type="submit" />
</form>
</body>
</html>
အခုဆိုရင္ ကၽြန္ေတာ္တို႔ရဲ႕ order form က process လုပ္ဖို႔ အဆင္သင့္ျဖစ္ပါၿပီ။ အဲဒီအတြက္ process.php ကို ဆက္ ေဆာက္ရေအာင္။
PHP Form Processor
ကၽြန္ေတာ္တို႔ေတြက order form မွာ ထည့္ေပးလိုက္တဲ့ “item” နဲ႔ “quantity” value ေတြကို ယူရမွာ ျဖစ္ပါတယ္။ form ကို submit လုပ္တဲ့ method က post ျဖစ္တဲ့အတြက္ $_POST ဆိုတဲ့ array variable ထဲကေန ယူရမွာ ျဖစ္ပါတယ္။ ($_POST, $_GET, $_SESSION စတဲ့ Superglobal variable ေတြ အေၾကာင္းကို ေနာက္ သင္ခန္းစာေတြမွာ ရွင္းပါမယ္)
form က ပို႔လိုက္တဲ့ item နဲ႔ quantity ကို လက္ခံဖို႔အတြက္ $item, $quantity variable အသစ္ ၂ ခု ေၾကျငာၿပီး သူတို႔ထဲကို $_POST ထဲက တန္ဖိုးေတြ ထည့္လိုက္ပါမယ္။ ဒီဖိုင္ကိုေတာ့ process.php လို႔ ေပးလိုက္ပါ။
<html>
<body>
<?php
$quantity = $_POST['quantity'];
$item = $_POST['item'];
echo "You ordered " . $quantity . " " . $item . ".<br />";
echo "Thanks you for ordering from Goo Stationery!";
?>
</body>
</html>
ဒီေနရာမွာ တစ္ခု သတိထားမိ ၾကပါလိမ့္မယ္။ $_POST['name'] ထဲက နာမည္က ကၽြန္ေတာ္တို႔ေတြ HTML form မွာ ေပးခဲ့တဲ့ နာမည္ေတြနဲ႔ တူေနပါတယ္။ အဲလို တူမွလဲ ရပါမယ္။ ဒီဥပမာမွာ ဆိုရင္ေတာ့ item, quantity ေပါ့။ username, password ပို႔ခဲ့မယ္ဆိုရင္ useranme ကို လိုခ်င္ရင္ $_POST['username'], password ကို လိုခ်င္ရင္ $_POST['password'] ဆိုပီး ျပန္ယူရမွာ ျဖစ္ပါတယ္။
ကဲ order.html ကို ဖြင့္ item တစ္ခုခုေရြး၊ quantity တစ္ခုခုထည့္ၿပီး စမ္းၾကည့္ပါ။ ကၽြန္ေတာ္ကေတာ့ Book, 5 နဲ႔ စမ္းလိုက္ပါတယ္။
ပံုမွာဆိုရင္ 5 Book. လို႔ ျဖစ္ေနပါတယ္။ output ျပန္ထုတ္ မျပခင္မွာ quantity က တစ္ခုဆို item ကို ျပတဲ့အခါ Singular နဲ႔ျပ၊ တစ္ခုထက္ပိုရင္ Plural နဲ႔ ျပဖို႔ If နဲ႔ စစ္ၿပီးေရးလို႔ ရပါေသးတယ္။ အမ်ိဳးမ်ိဳးေတြးၿပီး စမ္းၾကည့္ၾကပါ။
PHP & HTML Form Review
ဒီဥပမာမွာ အဆင့္ ေတာ္ေတာ္ မ်ားမ်ား လုပ္ခဲ့ၾကပါတယ္။ ေသခ်ာ နားလည္သြားေအာင္ တစ္ဆင့္ခ်င္း ျပန္ၾကည့္ၾကမယ္။
1. ပထမ ကၽြန္ေတာ္တို႔ data ေတြ လက္ခံဖို႔ order form ပါတဲ့ “order.html” ကို ေဆာက္တယ္။ input field ႏွစ္ခုကို “item”, “quantity” လို႔ နာမည္ေပးခဲ့တယ္။
2. form tag မွာ process လုပ္ဖို႔တြက္ process.php ကို ညႊန္းၿပီး ပို႔မယ့္ method ကိုေတာ့ “post” ကို ထားလိုက္ပါတယ္။
3. “process.php” မွာ form ကေန ပို႔လိုက္တဲ့ item, quantity တန္ဖိုးေတြကို $_POST ကေန တဆင့္ variable အသစ္ ႏွစ္ခုထဲကို ထည့္လိုက္ပါတယ္။
4. ေနာက္ဆံုး echo function ကို သံုးၿပီး order information ကို output ျပန္ထုတ္ ျပလိုက္ပါတယ္။
ဒီ သင္ခန္းစာက form process ဘယ္လို လုပ္သလဲဆိုတာ ျပဖို႔ သက္သက္ပါ။ တကယ္ စီးပြားေရးလုပ္ငန္း site မွာ ဒီပံုစံမ်ိဳး သံုးဖို႔ မသင့္ေတာ္ပါဖူး။