首页>>表单>>反馈表单,JQUERY无刷新,数字验证(2013-09-18)

反馈表单,JQUERY无刷新,数字验证

 JS文件可以在演示页面查看到

反馈表单,JQUERY无刷新,数字验证
赞赏支持
立刻微信赞赏支持 关闭

 
XML/HTML Code
  1. <form id="contact-form" name="contact-form" method="post" action="submit.php">  
  2.       <table width="100%" border="0" cellspacing="0" cellpadding="5">  
  3.         <tr>  
  4.           <td width="15%"><label for="name">Name</label></td>  
  5.           <td width="70%"><input type="text" class="validate[required,custom[onlyLetter]]" name="name" id="name" value="<?=$_SESSION['post']['name']?>" /></td>  
  6.           <td width="15%" id="errOffset"> </td>  
  7.         </tr>  
  8.         <tr>  
  9.           <td><label for="email">Email</label></td>  
  10.           <td><input type="text" class="validate[required,custom[email]]" name="email" id="email" value="<?=$_SESSION['post']['email']?>" /></td>  
  11.           <td> </td>  
  12.         </tr>  
  13.         <tr>  
  14.           <td><label for="subject">Subject</label></td>  
  15.           <td><select name="subject" id="subject">  
  16.             <option value="" selected="selected"> - Choose -</option>  
  17.             <option value="Question">Question</option>  
  18.             <option value="Business proposal">Business proposal</option>  
  19.             <option value="Advertisement">Advertising</option>  
  20.             <option value="Complaint">Complaint</option>  
  21.           </select>          </td>  
  22.           <td> </td>  
  23.         </tr>  
  24.         <tr>  
  25.           <td valign="top"><label for="message">Message</label></td>  
  26.           <td><textarea name="message" id="message" class="validate[required]" cols="35" rows="5"><?=$_SESSION['post']['message']?></textarea></td>  
  27.           <td valign="top"> </td>  
  28.         </tr>  
  29.         <tr>  
  30.           <td><label for="captcha"><?=$_SESSION['n1']?> + <?=$_SESSION['n2']?> =</label></td>  
  31.           <td><input type="text" class="validate[required,custom[onlyNumber]]" name="captcha" id="captcha" /></td>  
  32.           <td valign="top"> </td>  
  33.         </tr>  
  34.         <tr>  
  35.           <td valign="top"> </td>  
  36.           <td colspan="2"><input type="submit" name="button" id="button" value="Submit" />  
  37.           <input type="reset" name="button2" id="button2" value="Reset" />  
  38.             
  39.           <?=$str?>          <img id="loading" src="img/ajax-load.gif" width="16" height="16" alt="loading" /></td>  
  40.         </tr>  
  41.       </table>  
  42.       </form>  

 submit.php

 

PHP Code
  1. <?php  
  2.   
  3. /* config start */  
  4.   
  5. $emailAddress = '';  
  6.   
  7. /* config end */  
  8.   
  9.   
  10. require "phpmailer/class.phpmailer.php";  
  11.   
  12. session_name("fancyform");  
  13. session_start();  
  14.   
  15.   
  16. foreach($_POST as $k=>$v)  
  17. {  
  18.     if(ini_get('magic_quotes_gpc'))  
  19.     $_POST[$k]=stripslashes($_POST[$k]);  
  20.       
  21.     $_POST[$k]=htmlspecialchars(strip_tags($_POST[$k]));  
  22. }  
  23.   
  24.   
  25. $err = array();  
  26.   
  27. if(!checkLen('name'))  
  28.     $err[]='The name field is too short or empty!';  
  29.   
  30. if(!checkLen('email'))  
  31.     $err[]='The email field is too short or empty!';  
  32. else if(!checkEmail($_POST['email']))  
  33.     $err[]='Your email is not valid!';  
  34.   
  35. if(!checkLen('subject'))  
  36.     $err[]='You have not selected a subject!';  
  37.   
  38. if(!checkLen('message'))  
  39.     $err[]='The message field is too short or empty!';  
  40.   
  41. if((int)$_POST['captcha'] != $_SESSION['expect'])  
  42.     $err[]='The captcha code is wrong!';  
  43.   
  44.   
  45. if(count($err))  
  46. {  
  47.     if($_POST['ajax'])  
  48.     {  
  49.         echo '-1';  
  50.     }  
  51.   
  52.     else if($_SERVER['HTTP_REFERER'])  
  53.     {  
  54.         $_SESSION['errStr'] = implode('<br />',$err);  
  55.         $_SESSION['post']=$_POST;  
  56.           
  57.         header('Location: '.$_SERVER['HTTP_REFERER']);  
  58.     }  
  59.   
  60.     exit;  
  61. }  
  62.   
  63.   
  64. $msg=  
  65. 'Name:  '.$_POST['name'].'<br /> 
  66. Email:  '.$_POST['email'].'<br /> 
  67. IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br /> 
  68.  
  69. Message:<br /><br /> 
  70.  
  71. '.nl2br($_POST['message']).' 
  72.  
  73. ';  
  74.   
  75.   
  76. $mail = new PHPMailer();  
  77. $mail->IsMail();  
  78.   
  79. $mail->AddReplyTo($_POST['email'], $_POST['name']);  
  80. $mail->AddAddress($emailAddress);  
  81. $mail->SetFrom($_POST['email'], $_POST['name']);  
  82. $mail->Subject = "A new ".mb_strtolower($_POST['subject'])." from ".$_POST['name']." | contact form feedback";  
  83.   
  84. $mail->MsgHTML($msg);  
  85.   
  86. $mail->Send();  
  87.   
  88.   
  89. unset($_SESSION['post']);  
  90.   
  91. if($_POST['ajax'])  
  92. {  
  93.     echo '1';  
  94. }  
  95. else  
  96. {  
  97.     $_SESSION['sent']=1;  
  98.       
  99.     if($_SERVER['HTTP_REFERER'])  
  100.         header('Location: '.$_SERVER['HTTP_REFERER']);  
  101.       
  102.     exit;  
  103. }  
  104.   
  105. function checkLen($str,$len=2)  
  106. {  
  107.     return isset($_POST[$str]) && mb_strlen(strip_tags($_POST[$str]),"utf-8") > $len;  
  108. }  
  109.   
  110. function checkEmail($str)  
  111. {  
  112.     return preg_match("/^[.A-z0-9_-+]+[@][A-z0-9_-]+([.][A-z0-9_-]+)+[A-z]{1,4}$/"$str);  
  113. }  
  114.   
  115. ?>  

 


原文地址:http://www.freejs.net/article_biaodan_37.html