讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 24.4.2 表單提交開發實現 >

24.4.2 表單提交開發實現

當用戶點擊「提交信息」按鈕後,這些表單信息就會被POST到submit.php中。使用$_POST變量可以獲取這些變量的值,與$_GET變量不同的是,它們不會顯示在URL中。這些變量的獲取代碼如下。


1 $openid     = $_POST["openid"];
2 $name       = $_POST["name"];
3 $sex        = $_POST["sex"];
4 $age        = $_POST["age"];
5 $mobile     = $_POST["mobile"];
6 $bookdate   = $_POST["bookdate"];
7 $bookexpert = $_POST["bookexpert"];
  

下面通過PHPMailer將訂單中的內容發送到郵件中,PHPMailer是PHP中一個功能全面的電子郵件類,其官方網站為http://phpmailer.worxware.com/。

使用PHPMailer發送訂單的代碼如下。


 1 function sendMail
 2 {
 3     global $openid;
 4     global $name;
 5     global $sex;
 6     global $age;
 7     global $mobile;
 8     global $bookdate;
 9     global $bookexpert;
10     
11     $Subject = "微信訂單";
12     $receiver = "[email protected]";
13     $content = "姓名:".$name."\n".
14     "性別:".$sex."\n".
15     "年齡:".$age."\n".
16     "手機:".$mobile."\n".
17     "預約日期:".$bookdate."\n".
18     "預約專家:".$bookexpert."\n".
19     "微信ID:".$openid;
20 
21     require_once('phpmailer/class.phpmailer.php');
22     $mail = new PHPMailer;
23     $mail->IsSMTP;
24     $mail->CharSet = "utf-8";
25     $mail->Host = "smtp.163.com";
26     $mail->SMTPAuth = true;
27     $mail->Username = "[email protected]";
28     $mail->Password = "yourpassword";
29     $mail->From = "[email protected]";
30     $mail->FromName = "微信訂單";
31     $mail->AddAddress($receiver, "");
32     $mail->Subject = $Subject;
33     $mail->Body = $content;
34     if(!$mail->Send){
35         return '提交失敗!'.$mail->ErrorInfo;
36     }else{
37         return '提交成功';
38     }
39 }
  

在上述代碼中,需要配置SMTP服務器,啟用SMTP認證,並且配置賬號、密碼、收件人郵箱、郵件標題及內容,最後可以使用send函數將郵件發送出來。

郵件發送的結果和其他訂單信息將一起在頁面中顯示出來,實現代碼如下。


 1 <html>
 2   <head>
 3     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 4     <title>預約口腔醫生</title>
 5     <meta name="viewport" content="width=device-width,height=device-height,inital-
       scale=1.0,maximum-scale=1.0,user-scalable=no;">
 6     <meta name="apple-mobile-web-app-capable" content="yes">
 7     <meta name="apple-mobile-web-app-status-bar-style" content="black">
 8     <meta name="format-detection" content="telephone=no">
 9     <link href="css/order.css" rel="stylesheet" type="text/css">
10     <script type="text/javascript" src="js/jquery.min.js"></script>
11     <script type="text/javascript" src="js/main.js"></script>
12   </head>
13 
14   <body >
15     <p>
16       <p>
17         <p >
18           <ul>
19             <li >
20               <img src="img/logo.png"  >
21             </li>
22           </ul>
23         </p>
24       </p>
25       <p></p>
26     </p>
27     <p>
28       <ul >
29         <li >
       <?php echo $result;?></li>
30       </ul>
31       <ul>
32         <li><span>您提交的信息</span></li>
33         <li >
34           <table  border="0" cellspacing="0" cellpadding="0">
35             <tbody>
36               <tr>
37                 <th>姓名</th>
38                 <td><?php echo $name;?></td>
39               </tr>
40             </tbody>
41           </table>
42         </li>
43         <li >
44           <table  border="0" cellspacing="0" cellpadding="0">
45             <tbody>
46               <tr>
47                 <th>性別</th>
48                 <td><?php echo $sex;?></td>
49               </tr>
50             </tbody>
51           </table>
52         </li>
53         <li >
54           <table  border="0" cellspacing="0" cellpadding="0">
55             <tbody>
56               <tr>
57                 <th>年齡</th>
58                 <td><?php echo $age;?></td>
59               </tr>
60             </tbody>
61           </table>
62         </li>
63         <li >
64           <table  border="0" cellspacing="0" cellpadding="0">
65             <tbody>
66               <tr>
67                 <th>手機</th>
68                 <td><?php echo $mobile;?></td>
69               </tr>
70             </tbody>
71           </table>
72         </li>
73         <li >
74           <table  border="0" cellspacing="0" cellpadding="0">
75             <tbody>
76               <tr>
77                 <th>預約日期</th>
78                 <td><?php echo $bookdate;?></td>
79               </tr>
80             </tbody>
81           </table>
82         </li>
83         <li >
84           <table  border="0" cellspacing="0" cellpadding="0">
85             <tbody>
86               <tr>
87                 <th>預約專家</th>
88                 <td><?php echo $bookexpert;?></td>
89               </tr>
90             </tbody>
91           </table>
92         </li>
93       </ul>
94     </p>
95   </body>
96 </html>
 

一個發送成功的界面如圖24-10所示。

一般情況下,預約信息需要寫入數據庫保存,並且給用戶發送預約成功通知。讀者可以自己實現該部分功能。在本例中,使用QQ郵箱進行提醒。

如果在微信中啟用了「QQ郵箱提醒」功能,且郵箱與微信賬號已綁定,那麼可以直接在微信中收到訂單提醒,並且可在微信中打開,如圖24-11所示。

圖24-10 訂單提交成功

圖24-11 QQ郵箱收到訂單