2012-06-07 112 views
0

我有下面的表格不會提交給我的電子郵件。我在下面粘貼了我的表單代碼,javascript和php代碼。我是javascript中的新手,請協助。表格不會提交

<form id="form-main" action="bin/bookHandler.php"> 
            . 


              <div class="clear"></div> 
             </div> 
             <div class="row1">Additional Comments:</div> 
             <label class="message"> 
              <textarea></textarea> 
             </label> 
             <div class="clear"></div> 
             <div class="buttons"> 
              <a onClick="document.getElementById('form-main').submit()">Send</a> 
              <a onClick="document.getElementById('form-main').reset()">Clear</a> 
             </div> 
            </fieldset> 
           </form> 

下面是形式的javascript:

(function($){ 
    $.fn.extend({ 
     forms:function(opt){ 
      if(opt===undefined) 
       opt={} 
      this.each(function(){ 
       var th=$(this), 
        data=th.data('forms'), 
        _={ 
         errorCl:'error', 
         emptyCl:'empty', 
         invalidCl:'invalid', 
         successCl:'success', 
         successShow:'4000', 
         mailHandlerURL:'bin/MailHandler.php', 
         ownerEmail:'[email protected]', 
         stripHTML:true, 
         smtpMailServer:'localhost', 
         targets:'input,textarea', 
         controls:'a[data-type=reset],a[data-type=submit]', 
         validate:true, 
         rx:{ 
          ".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'}, 
          ".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'}, 
          ".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'}, 
          ".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'}, 
          ".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'}, 
          ".message":{rx:/.{20}/,target:'textarea'} 
         }, 
         preFu:function(){ 
          _.labels.each(function(){ 
           var label=$(this), 
            inp=$(_.targets,this), 
            defVal=inp.val(), 
            trueVal=(function(){ 
               var tmp=inp.is('input')?(tmp=label.html().match(/value=['"](.+?)['"].+/),!!tmp&&!!tmp[1]&&tmp[1]):inp.html() 
               return defVal==''?defVal:tmp 
              })() 
           trueVal!=defVal 
            &&inp.val(defVal=trueVal||defVal) 
           label.data({defVal:defVal})        
           inp 
            .bind('focus',function(){ 
             inp.val()==defVal 
              &&(inp.val(''),_.hideEmptyFu(label),label.removeClass(_.invalidCl)) 
            }) 
            .bind('blur',function(){ 
             !inp.val() 
              ?inp.val(defVal)           
              :(_.isValid(label) 
               ?_.showErrorFu(label) 
               :_.hideErrorFu(label)), 
              (_.isEmpty(label) 
               ?_.showEmptyFu(label) 
               :_.hideEmptyFu(label)) 
            }) 
            .bind('keyup',function(){ 
             label.hasClass(_.invalidCl) 
              &&_.isValid(label) 
               ?_.showErrorFu(label) 
               :_.hideErrorFu(label) 
            }) 
           label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide() 
          }) 
          _.success=$('.'+_.successCl,_.form).hide() 
         }, 
         isValid:function(el){ 
          var ret=true, 
           empt=_.isEmpty(el) 
          if(empt) 
           ret=false, 
           el.addClass(_.invalidCl) 
          else 
           $.each(_.rx,function(k,d){ 
            if(el.is(k)) 
             d.rx.test(el.find(d.target).val()) 
              ?(el.removeClass(_.invalidCl),ret=false) 
              :el.addClass(_.invalidCl) 
           }) 
          return ret 
         }, 
         isEmpty:function(el){ 
          var tmp 
          return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal') 
         }, 
         validateFu:function(){       
          _.labels.each(function(){ 
           var th=$(this)        
           _.isEmpty(th) 
            ?_.showEmptyFu(th) 
            :_.hideEmptyFu(th) 
           _.isValid(th) 
            ?_.showErrorFu(th) 
            :_.hideErrorFu(th) 
          }) 
         }, 
         submitFu:function(){ 
          _.validateFu() 
          if(!_.form.has('.'+_.invalidCl).length) 
           $.ajax({ 
            type: "POST", 
            url:_.mailHandlerURL, 
            data:{ 
             name:$('.name input',_.form).val()||'nope', 
             email:$('.email input',_.form).val()||'nope', 
             phone:$('.phone input',_.form).val()||'nope', 
             fax:$('.fax input',_.form).val()||'nope', 
             state:$('.state input',_.form).val()||'nope', 
             message:$('.message textarea',_.form).val()||'nope', 
             owner_email:_.ownerEmail, 
             stripHTML:_.stripHTML 
            }, 
            success: function(){ 
             _.showFu() 
            } 
           })   
         }, 
         showFu:function(){ 
          _.success.slideDown(function(){ 
           setTimeout(function(){ 
            _.success.slideUp() 
            _.form.trigger('reset') 
           },_.successShow) 
          }) 
         }, 
         controlsFu:function(){ 
          $(_.controls,_.form).each(function(){ 
           var th=$(this) 
           th 
            .bind('click',function(){ 
             _.form.trigger(th.data('type')) 
             return false 
            }) 
          }) 
         }, 
         showErrorFu:function(label){ 
          label.find('.'+_.errorCl).slideDown() 
         }, 
         hideErrorFu:function(label){ 
          label.find('.'+_.errorCl).slideUp() 
         }, 
         showEmptyFu:function(label){ 
          label.find('.'+_.emptyCl).slideDown() 
          _.hideErrorFu(label) 
         }, 
         hideEmptyFu:function(label){ 
          label.find('.'+_.emptyCl).slideUp() 
         }, 
         init:function(){ 
          _.form=this 
          _.labels=$('label',_.form) 

          _.preFu() 

          _.controlsFu() 

          _.form 
           .bind('submit',function(){ 
            if(_.validate) 
             _.submitFu() 
            else 
             _.form[0].submit() 
            return false 
           }) 
           .bind('reset',function(){ 
            _.labels.removeClass(_.invalidCl)         
            _.labels.each(function(){ 
             var th=$(this) 
             _.hideErrorFu(th) 
             _.hideEmptyFu(th) 
            }) 
           }) 
          _.form.trigger('reset') 
         } 
        } 
       if(!data) 
        (typeof opt=='object'?$.extend(_,opt):_).init.call(th), 
        th.data({cScroll:_}), 
        data=_ 
       else 
        _=typeof opt=='object'?$.extend(data,opt):data 
      }) 
      return this 
     } 
    }) 
})(jQuery) 

$(function(){ 
    $('#contact-form').forms({ 
    ownerEmail:'[email protected]' 
    }) 
}) 

下面是PHP:

<?php 
$field_name = $_POST["cf_name"]; 
$field_email = $_POST["cf_email"]; 
$field_tel = $_POST["tel"]; 
$field_stay = $_POST["selectStay"]; 
$field_people = $_POST["selectPeople"]; 
$field_month = $_POST["selectMonth"]; 
$field_day = $_POST["selectDay"]; 
$field_year = $_POST["selectYear"]; 
$field_message = $_POST["cf_message"]; 

$mail_to = '[email protected]'; 
$subject = 'Message from a site visitor '.$field_name; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Telephone/Cell: '.$field_tel."\n"; 
$body_message .= 'Length of stay: '.$field_stay."\n"; 
$body_message .= 'Number of people: '.$field_people."\n"; 
$body_message .= 'Month: '.$field_month.; 
$body_message .= 'Day: '.$field_day.; 
$body_message .= 'Year: '.$field_year."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Thank you for the message. We will contact you shortly.'); 

    </script> 
<?php 
} 
else { ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Message failed. Please, send an email to ssssss'); 

    </script> 
<?php 
} 
?> 
+0

改爲使用小寫字母。 –

+2

當您嘗試提交時會發生什麼?沒有?錯誤? – aniri

+0

也許你可以細化代碼,所以我們在這裏是儘可能小的部分仍然會導致問題。 (雖然這樣做,你很可能會自己發現問題。) –

回答

2

看一看的print_r($ _ POST); POST是否成功?

+0

@aniri在我的網址上有http://www.vvvvv.com/bin/bookHandler.php?select=2&select=2&select=April&select=Day&select=Year。沒有什麼打印 – Sithelo

+0

dump_var($ _ POST); 可能會工作 –