首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》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邮箱收到订单