讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 24.4.1 前端設計與實現 >

24.4.1 前端設計與實現

預約訂單開發主要分為兩個部分,一是用戶填寫的表單,二是信息的確認頁面。

用戶填寫表單的頁面是第一個Web頁面,在該Web頁面上方可以放置公司的Logo或者宣傳圖片,相關代碼實現如下。


1     <p>
2       <p>
3         <p >
4           <ul><img src="img/logo.png"  
            >
5           </ul>
6         </p>
7       </p>
8       <p></p>
9     </p>
  

下方放置頁面功能介紹及訂單填寫表單,其中頁面介紹相關代碼如下。


1       <ul>
2         <li>
3           <h2>預約口腔醫生</h2>
4           <p>
5             長沙市XX口腔竭誠為您服務<br/>
6           聯繫電話:0731-7654321</p>
7         </li>
8       </ul>
  

最後需要讓用戶填寫表單,並將表單信息通過POST提交給submit.php文件。其相關代碼實現如下。


 1   <form method="post" action="submit.php" onsubmit="return tgSubmit">
 2     <ul>
 3       <li><span>請填寫以下信息</span></li>
 4       <li>
 5         <table  border="0" cellspacing="0" cellpadding="0">
 6           <tbody>
 7             <tr>
 8               <th>姓名</th>
 9               <td><input type="text" placeholder="請輸入姓名" 
                 name="name" >
10               </td>
11             </tr>
12           </tbody>
13         </table>
14       </li>
15       <li>
16         <table  border="0" cellspacing="0" cellpadding="0">
17           <tbody>
18             <tr>
19               <th>性別</th>
20               <td><select  name="sex" class=
                 "dropdown-select"><option  selected="">請選擇性別</option>
                     <option >男</option><option >女</option></select>
21               </td>
22             </tr>
23           </tbody>
24         </table>
25       </li>
26       <li>
27         <table  border="0" cellspacing="0" cellpadding="0">
28           <tbody>
29             <tr>
30               <th>年齡</th>
31               <td><input type="text" placeholder="請輸入年齡" 
                 name="age" >
32               </td>
33             </tr>
34           </tbody>
35         </table>
36       </li>
37       <li>
38         <table  border="0" cellspacing="0" cellpadding="0">
39           <tbody>
40             <tr>
41               <th>手機</th>
42               <td><input type="text" placeholder="請輸入手機" 
                 name="mobile" >
43               </td>
44             </tr>
45           </tbody>
46         </table>
47       </li>
48       <li>
49         <table  border="0" cellspacing="0" cellpadding="0">
50           <tbody>
51             <tr>
52               <th>預約日期</th>
53               <td>
54                 <select  name="bookdate" 
                  >
55                   <option  selected="">請選擇預約日期</option>
56                   <?php
57                   for ($i = 1; $i <= 6; $i++) {
58                     $offset = strtotime("+".($i-1)." day");
59                     $bDate = date("m月d日",$offset);
60                     $optionString .= '<option >'.$bDate.'</option>';
61                   }
62                   echo $optionString;
63                   ?>
64                 </select>
65               </td>
66             </tr>
67           </tbody>
68         </table>
69       </li>
70       <li>
71         <table  border="0" cellspacing="0" cellpadding="0">
72           <tbody>
73             <tr>
74               <th>預約專家</th>
75               <td><select  name="bookexpert" 
                ><option  selected="">請選擇預約專家
                 </option><option >陳艷</option><option >
                 楊廣勝</option><option >周平</option></select>
76               </td>
77             </tr>
78           </tbody>
79         </table>
80       </li>
81     </ul>
82 
83     <p >
84       <input type="hidden" name="openid" >
85       <input type="submit"  
             >
86     </p>
87   </form>
  

在上述代碼中,定義了一個form表單,設置了「姓名」「性別」「年齡」「手機」「預約日期」「預約專家」等選項。其中,「姓名」「年齡」「手機」由用戶自己填寫,「性別」「預約專家」由程序指定選擇列表供用戶選擇,「預約日期」則由PHP程序生成未來6天的日期。在提交的表單信息中,還將用戶的微信ID隱藏起來一起提交(第84行)。

對這些表單選項還需要使用JavaScript來校驗用戶是否正確輸入,並在錯誤輸入時顯示提示語,其相關代碼如下。


 1   <script>
 2     function showTip(tipTxt) {
 3       var p = document.createElement('p');
 4       p.innerHTML = '<p><p>' + tipTxt + '</p></p>';
 5       var tipNode = p.firstChild;
 6       $("#wrap").after(tipNode);
 7       setTimeout(function  {
 8         $(tipNode).remove;
 9       }, 1500);
10     }
11     function tgSubmit{
12       var name=$("#name").val;
13       if($.trim(name) == ""){
14         showTip('請輸入姓名')
15         return false;
16       }
17       var sex=$("#sex").val;
18       var age=$("#age").val;
19       var patrn = /^[0-9]{1,2}$/;
20       if (!patrn.exec($.trim(age))) {
21         showTip('請輸入年齡')
22         return false;
23       }
24       var mobile=$("#mobile").val;
25       if($.trim(mobile) == ""){
26         showTip('請正確填寫手機號碼')
27         return false;
28       }
29       var patrn = /^13[0-9]{9}$|^15[0-9]{9}$|^18[0-9]{9}$/;
30       if (!patrn.exec($.trim(mobile))) {
31         showTip('請正確填寫手機號碼')
32         return false;
33       }
34       var bookdate=$("#bookdate").val;
35       if($.trim(bookdate) == ""){
36         showTip('請輸入預約日期')
37         return false;
38       }
39       var bookexpert=$("#bookexpert").val;
40       if($.trim(bookexpert) == ""){
41         showTip('請輸入預約專家')
42         return false;
43       }
44       return true;
45     }
46   </script>
  

上述頁面的實現效果如圖24-9所示。

圖24-9 訂單預約頁面