មេរៀនទី៧: ​PHP- ទម្រង់ Form

មេរៀនទី៧: ​PHP- ទម្រង់ Form

នៅលើ internet (world wide web ) Form ផ្លល់នូវលទ្ធភាពេនៃការបញ្ជូននូវពត៌មានពីអ្នក ប្រើប្រាស់ពី Client ទៅកាន់ Server ។ PHPត្រូវបានរចនាឡើងដើម្បីធ្វើការជា មួយនឹងពត៌មាន ទាំងនោះនៅពេលដែល HTML forms ត្រូវបាន submit ។

1. User Input.

អ្នកប្រាកដជាចង់អោយកមវិធីរបស់អ្នកមានសកមភាព ឬ ទំនាក់ទំនងជាមួយនឹងអ្នក ប្រើប្រាស់ ក្នុង ខណៈពេលណាមួយ ។ ឧទាហរណ៍ខាក្រោមគឺជាការបង្កើតនូវ Form មួយដើម្បីទទួលនូវពត៌មានពី អ្នកប្រើប្រាស់ដូចជា first-name , last-name , date of birth , email address និង password។

<html>

<head>

<title>Registration form </title>

</head>

<body>

<CENTER>

<h2>Registration Form</h2>

<hr width=”50%”>

<form method=”GET” action=”register.php” >

<table>

<tr><td>First-Name</td>

<td><input type=”Text” name=”txtFname”></td>

</tr>

<tr><td>Last-Name</td>

<td><input type=”Text” name=”txtLname”></td>

</tr>

<tr><td>Date of Birth</td>

<td>

<Select name=”cboday”>

<option value=”01″>01</Option>

<option value=”02″>02</Option>

<option value=”03″>03</Option>

</select>

<Select name=”cbomonth”>

<option value=”01″>Jan</Option>

<option value=”02″>Feb</Option> .

<option value=”03″>Mar</Option>

</select>

<Select name=”cboyear”>

<option value=”1980″>1980</Option>

<option value=”1981″>1981</Option>

<option value=”1982″>1982</Option>

<option value=”1983″>1983</Option>

</select>

</tr>

<tr><td>E-mail</td>

<td> <input type=”text” name=”txtemail”></td>

</tr>

<tr><td align=right colspan=2> <input type=”submit” value=”Submit”>

</td>

</tr>

<tr><td>Password</td>

<td> <input type=”password” name=”txtpwd” size=22></td>

</tr>

</table>

</body> </html>

នៅបន្ទាត់ដែលយើងបានប្រើនូវ form tage<form method=”get” action=”register.php”> យើងបានប្រើនូវ get method ដែលជា attribute ដំបូងនៅក្នុង form tag ។ HTTP get method ធ្វើការបញ្ជូនទិន្នន័យពី form ទៅតាម URL ដែលធ្វើអោយទិន្ននយ័ទាំងនោះអាចបង្ហាញនៅលើ address bar របស់ browser ជាហេតុធ្វើអោយលទ្ធផលដែលបានពី form អាចត្រូវរក្សារទុកជា bookmark ។ អ្នកប្រហែលជាត្រូវប្រើ post method វិញជាការប្រសើរជាង ប្រសិនបើអ្នកចង់

ប្រើប្រាស់នូវ passwordពីព្រោះ POST ធ្វើការបញ្ជូនទិន្នន័យដែលមាននៅក្នុង form ទៅតាម body នៃ HTTP request ដូចច្នេះ ទិន្នន័យទាំងនោះមិនត្រូវបានបង្ហាញអោយឃើញជាមួយ URL ឬ ជា bookmarked នោះទេ ។ ដើម្បី processes data ពី form ដែលប្រើ get method នៅក្នុង Script អ្នកអាចប្រើជាមួយ $_GET ឬប្រសិនបើអ្នកប្រើ នូវ post method អ្នកអាចប្រើជាមួយ $_POST ឬ ប្រើ $_REQUEST អ្នកអាចប្រើបាស់បានទាំងពីរ method។

ឧទាហរណ៍ ការប្រើប្រាស់ get method នៅក្នុង script

register.php

<html>

<body>

<head>

<title>Personal Information</title>

</head>

<center>

<h2>Personal Information</h2>

<hr width=50%>

<?php

$fname = $_GET[‘txtFname’];

$lname = $_GET[‘txtLname’];

$day = $_GET[‘cboDay’];

$month = $_GET[‘cboMonth’];

$year = $_GET[‘cboYear’];

$dob = $day.$month”.$year”;

print “<table>”;

print “<tr>”;

print “<td><b>First-Name :</b></td>”;

print “<td> $fname </td>”;

a

print “</tr>”;

print “<tr>”;

print “<td><b>Last-Name :</b></td>”;

print “<td> $lame </td>”;

print “</tr>”;

print “</table>”;

?>

</body>

</html>

ខាងក្រោមគឺជាលទ្ធផលដែលទទួលបានបន្ទាប់ពី form ត្រូវបាន submit ដោយប្រើ get mehod ។ សូមពិនិត្យមើលនូវ address bar របស់ browser ដែលពត៌មានបញ្ជូនមកនោះ ត្រូវបានភ្ជាប់មកជាមួយនឹង url

a

ឧទាហរណ៍ ៤៩ ការប្រើប្រាស់ post method នៅក្នុង script

register.php

<html>

<body>

<?php

$fname = $_POST[‘txtFname’];

$lname = $_POST[‘txtLname’];

print “<table>”;

print “<tr>”;

print “<td><b>First-Name :</b></td>”;

print “<td> $fname </td>”;

print “</tr>”;

print “<tr>”;

print “<td><b>Last-Name :</b></td>”;

print “<td> $lame </td>”;

print “</tr>”;

print “</table>”;

?>

</body>

</html>

អ្នកនឹងបានឃើញពីភាពខុសគ្នារវាងការប្រើប្រាស់នូវ post method និង get method នៅលើ Address bar របស់ brower និមួយៗ ។ ខាងក្រោមគឺជាលទ្ធផលដែលទទួលបានបន្ទាប់ ពី form ត្រូវបាន Submit ដោយប្រើប្រាស់នូវ post method ។

a

2. Accessing Form Input with User-Defined Arrays .

ឧទាហរណ៍ ៤៩ ផ្ដល់លទ្ធភាពអោយអ្នកទទួលនូវពត៌មានពី HTML element ដែលបាន Submit នូវតំលៃមួយសំរាប់តែelement មួយប៉ុណ្ណោះដែលនេះពុំទាន់មានលក្ខណៈគ្រប់គ្រាន់នៅឡើយនោះទេប្រសិន បើអ្នកចង់ធ្វើការជាមួយនឹង multiple select ។

ឧទាហរណ៍ ៥០

01: <html>

02: <head>

03: <title>HTML Form with a ‘select’ Element</title>

04: </head>

05:

06: <body>

07: <center>

08: <h2>Multiple Select</h2>

09:

10: <hr width=”50%”>

11: <form action=”multiple.php” method=”POST”>

12: <select name=”products[]” multiple=”multiple”>

13: <option> Cocacola </option>

14: <option> Fanta </option>

15: <option> Sprite </option>

16: <option> Merinda </option>

17: <option> Pepsi </option>

18: </select><br><br>

19: <input type=”submit” value=”submit”>

20:

21: </body>

22: </html>

យើងនឹងបង្កើត script ដើម្បីស្វែងរក input ពី “products[]” form element ដែលបង្កើត នៅបន្ទាត់ ទី 12ដោយផ្ដល់ឈោះជា array indexed ហៅថា products។ products[]គឺជា select element ដែលផ្ដល់អោយនូវជំរើសសំរាប់អ្នកប្រើប្រាស់ដោយការប្រើ option element នៅបន្ទាត់ទី ១៣ ដល់ បន្ទាត់ទី ១៧យើងនឹងបង្ហាញពីលទ្ធផលដែលអ្នកប្រើប្រាស់បានជ្រើសរើសពី form ខាងលើ ដែលបង្កើតជា array នៅក្នុង ឧទាហរណ៍ ៥១

01: <html>

02: <body>

03: <head>

04: <title>Reading Input from the form multiple select</title>

05: </head>

06:

07: <?php

08:

09: if ( is_array( $_POST[‘products’] ) )

10: {

08: echo “<b>Your products choice are :</b><br/>”;

10: foreach($_POST[‘products’] as $val)

11: {

12: print “$val<br>”;

13: }

14: }

15:

16 ?>

17:

18: </body>

19: </html>

នៅបន្ទាត់ទី ០៩ នៃ ឧទាហរណ៍ ៥១ យើងធ្វើការត្រួតពិនិត្យទៅលើ $_POST[‘products’] Element ប្រសិនបើ element នេះជា array យើងនឹង loop រាល់ធាតុនិមួយៗរបស់វានៅបន្ទាត់ទី ១០ ដើម្បី បង្ហាញជាលទ្ធផលទៅកាន់ Browser ។ អ្នកក៏អាចអនុញ្ញាតិអោយអ្នកប្រើប្រាស់ ជ្រើរើសនូវជំរើសច្រើន ដោយប្រើ check boxes ដែលត្រូវផ្ដល់នូវឈោះដូចៗគ្នាសំរាប់ element និមួយៗ ហើយភ្ជាប់ជាមួយ empty brakets ។ PHP នឹង compiles នូវអ្វីដែលអ្នកប្រើប្រាស់បាន select ទៅជា array ។ យើងនឹងធ្វើការផ្លាស់ប្ដូរពីការប្រើ select element នៅឧទាហរណ៍ខាងលើ មកប្រើ check boxes វិញដូចមានក្នុងឧទាហរណ៍ ៥២។

ឧទាហរណ៍ ៥២

<html>

<head>

<title>HTML Form with a ‘select’ Element</title>

</head>

<body>

<center>

<h2>Multiple Select</h2>

<hr width=”50%”>

<form action=”multiple.php” method=”POST”>

<input type=”checkbox” name=”products[]” value=”Cocacola” />Cocacola

<input type=”checkbox” name=”products[]” value=”Fanta” />Fanta

<input type=”checkbox” name=”products[]” value=”Sprite” />Sprite

<input type=”checkbox” name=”products[]” value=”Merinda” />Merinda

<input type=”checkbox” name=”products[]” value=”Pepsi” />Pepsi

<br><br>

<input type=”submit” value=”submit”>

</body>

</html>

a

multiple.php

ឧទាហរណ៍ ៥២

01: <html>

02: <body>

03: <head>

04: <title>Reading Input from the form multiple select</title>

05: </head>

06:

07: <?php

08:

09: if ( is_array( $_POST[‘products’] ) )

10: {

08: echo “<b>Your products choice are :</b><br/>”;

10: foreach($_POST[‘products’] as $val)

11: {

12: print “$val<br>”;

13: }

14: }

15:

16 ?>

17:

18: </body>

19: </html>

a