Maister
Silver Member | Ðåäàêòèðîâàòü | Ïðîôèëü | Ñîîáùåíèå | Öèòèðîâàòü | Ñîîáùèòü ìîäåðàòîðó ÄðÓãè! Ñïåöû! Ïîäñêàæèòå, ïëèç, òàêóþ âåÑ×! Áüþñü óæå íåäåëþ (äàæå áîëüøå), íî, ÷òî-òî íå óëîâëþ íèêàê - ãäå ðåøàåòñÿ ïðîáëåìà...  øàáëîíå ôîðìà. Øàáëîí - áóòñòðàïîâñêèé. Âåðíåå - ôîðìû 2, íà ðàçíûõ ñòðàíèöàõ. Íî, êàê ìíå êàæåòñÿ - îíè - îäèíàêîâûå. Íî, ÷òî-òî íå ðàáîòàþò!... Óæå ïåðå÷èòàë êó÷ó âñåãî, íî ïîêà - íèêàê íå íàéäó, ãäå ïðîáëåìà... Âîò êîä: Ñàìè ôîðìû (èç øàáëîíà): 1-ÿ - Êîä: <div class="col-lg-8 col-md-8 col-sm-8 address"> <h2>Contact Form</h2> <form id="contact-form" class="contact-form"> <div class="success"> Contact form submitted! <strong>We will be in touch soon.</strong> </div> <fieldset> <div class="coll-1"> <div class="txt-form">Name<span>*</span></div> <label class="name"> <input type="text" value="Name*:"><br> <span class="error">*This is not a valid name.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="coll-2"> <div class="txt-form">Email<span>:</span></div> <label class="email"> <input type="email" value="E-mail*:"><br> <span class="error">*This is not a valid email address.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="coll-3"> <div class="txt-form">phone:</div> <label class="phone notRequired"> <input type="tel" value="Phone:"><br> <span class="error">*This is not a valid phone number.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="clear"></div> <div> <div class="txt-form">Comment<span>*</span></div> <label class="message"> <textarea>Message*:</textarea><br> <span class="error">*The message is too short.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="clear"></div> </fieldset> <div class="buttons-wrapper clearfix"><a href="#" class="btn-link btn-link2" data-type="submit">submit<span></span></a><strong>*REQUIRED FIELDS</strong></div> </form> </div> | 2-ÿ: Êîä: <form id="contact-form2" class="reservation-form"> <div class="success">Reservation form submitted! <strong>We will be in touch soon.</strong> </div> <fieldset> <div class="coll-1"> <div class="txt-form">Name<span></span></div> <label class="name"> <input type="text" value="Name:"><br> <span class="error">*This is not a valid name.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="coll-2"> <div class="txt-form">Email<span>:</span></div> <label class="email"> <input type="email" value="E-mail:"><br> <span class="error">*This is not a valid email address.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="coll-3"> <div class="txt-form">phone:</div> <label class="arrival notRequired"> <input type="tel" value="Phone:"><br> <span class="error">*This is not a valid phone number.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="coll-4"> <div class="txt-form">phone:</div> <label class="Length of stay notRequired"> <input type="tel" value="Fax:"><br> <span class="error">*This is not a valid phone number.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="clear"></div> <div> <div class="txt-form">Comment<span>*</span></div> <label class="message"> <textarea>Comments:</textarea><br> <span class="error">*The message is too short.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="clear"></div> </fieldset> <div class="buttons-wrapper clearfix"><a href="#" class="btn-link btn-link2" data-type="submit">send<span></span></a><a href="#" class="btn-link btn-link2" data-type="reset">clear<span></span></a></div> </form> | Ñêðèïò: Êîä: //forms ;(function($){ $.fn.forms=function(o){ return this.each(function(){ var th=$(this) ,_=th.data('forms')||{ errorCl:'error', emptyCl:'empty', invalidCl:'invalid', notRequiredCl:'notRequired', successCl:'success', successShow:'4000', mailHandlerURL:'bat/MailHandler.php', ownerEmail:'ñâîÿ_ïî÷òà@äîìåí.õõ', 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(){ _.validateFu(label) if(_.isEmpty(label)) inp.val(defVal) ,_.hideErrorFu(label.removeClass(_.invalidCl)) }) .bind('keyup',function(){ label.hasClass(_.invalidCl) &&_.validateFu(label) }) label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide() }) _.success=$('.'+_.successCl,_.form).hide() }, isRequired:function(el){ return !el.hasClass(_.notRequiredCl) }, isValid:function(el){ var ret=true $.each(_.rx,function(k,d){ if(el.is(k)) ret=d.rx.test(el.find(d.target).val()) }) return ret }, isEmpty:function(el){ var tmp return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal') }, validateFu:function(el){ el.each(function(){ var th=$(this) ,req=_.isRequired(th) ,empty=_.isEmpty(th) ,valid=_.isValid(th) if(empty&&req) _.showEmptyFu(th.addClass(_.invalidCl)) else _.hideEmptyFu(th.removeClass(_.invalidCl)) if(!empty) if(valid) _.hideErrorFu(th.removeClass(_.invalidCl)) else _.showErrorFu(th.addClass(_.invalidCl)) }) }, getValFromLabel:function(label){ var val=$('input,textarea',label).val() ,defVal=label.data('defVal') return label.length?val==defVal?'nope':val:'nope' } ,submitFu:function(){ _.validateFu(_.labels) if(!_.form.has('.'+_.invalidCl).length) $.ajax({ type: "POST", url:_.mailHandlerURL, data:{ name:_.getValFromLabel($('.name',_.form)), email:_.getValFromLabel($('.email',_.form)), phone:_.getValFromLabel($('.phone',_.form)), fax:_.getValFromLabel($('.fax',_.form)), state:_.getValFromLabel($('.state',_.form)), message:_.getValFromLabel($('.message',_.form)), 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=_.me _.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') } } _.me||_.init(_.me=th.data({forms:_})) typeof o=='object' &&$.extend(_,o) }) } })(jQuery) $(window).load(function(){ $('#contact-form2').forms({ ownerEmail:'#' }) $('#contact-form').forms({ ownerEmail:'#' }) }) | MailHandler.php^ Êîä: <?php $owner_email = $_POST["owner_email"]; $headers = 'From:' . $_POST["email"] . "\r\n" . 'Content-Type: text/plain; charset=UTF-8' . "\r\n"; $subject = 'A message from your site visitor ' . $_POST["name"]; $messageBody = ""; if($_POST['name']!='nope'){ $messageBody .= '<p>Visitor: ' . $_POST["name"] . '</p>' . "\n"; $messageBody .= '<br>' . "\n"; } if($_POST['email']!='nope'){ $messageBody .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n"; $messageBody .= '<br>' . "\n"; }else{ $headers = ''; } if($_POST['state']!='nope'){ $messageBody .= '<p>State: ' . $_POST['state'] . '</p>' . "\n"; $messageBody .= '<br>' . "\n"; } if($_POST['phone']!='nope'){ $messageBody .= '<p>Phone Number: ' . $_POST['phone'] . '</p>' . "\n"; $messageBody .= '<br>' . "\n"; } if($_POST['fax']!='nope'){ $messageBody .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n"; $messageBody .= '<br>' . "\n"; } if($_POST['message']!='nope'){ $messageBody .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n"; } if($_POST["stripHTML"] == 'true'){ $messageBody = strip_tags($messageBody); } try{ if(!mail($owner_email, $subject, $messageBody, $headers)){ throw new Exception('mail failed'); }else{ echo 'mail sent'; } }catch(Exception $e){ echo $e->getMessage() ."\n"; } ?> |  ôîðìàõ Êîä: <input type="text" value="Name*:"> | , ...value="Phone"... è "message" (value= â message íåò âîîáùå...) ìåíÿþ ñîîòâåòñòâåííî íà ðóññêèé âàðèàíò - Èìÿ, Òåëåôîí è Ñîîáùåíèå... - ...value="Èìÿ*:">  ñêðèïòå Êîä: ,submitFu:function(){ _.validateFu(_.labels) if(!_.form.has('.'+_.invalidCl).length) $.ajax({ type: "POST", url:_.mailHandlerURL, data:{ name:_.getValFromLabel($('.name',_.form)), email:_.getValFromLabel($('.email',_.form)), phone:_.getValFromLabel($('.phone',_.form)), fax:_.getValFromLabel($('.fax',_.form)), state:_.getValFromLabel($('.state',_.form)), message:_.getValFromLabel($('.message',_.form)), owner_email:_.ownerEmail, stripHTML:_.stripHTML }, success: function(){ _.showFu() } }) }, | çíà÷åíèÿ èç ñîîòâåòñòâóþùèõ value, ò.å. ðóññêîå "Èìÿ*:"... è ò.ä., óêàçûâàþ ñâîþ ïî÷òó: Êîä: ...successShow:'4000', mailHandlerURL:'bat/MailHandler.php', ownerEmail:'ñâîÿ_ïî÷òà@äîìåí.õõ', stripHTML:true, ... | . È åù¸: Êîä: ...})(jQuery) $(window).load(function(){ $('#contact-form2').forms({ ownerEmail:'ñâîÿ_ïî÷òà@äîìåí.õõ' }) $('#contact-form').forms({ ownerEmail:'ñâîÿ_ïî÷òà@äîìåí.õõ' }) }) | Ïîäñêàæèòå, ïîæàëóéñòà, ÷òî íå òàê, à òî óæå ñëîìàë ìîÑÊ! Ñïàñèáî! | Âñåãî çàïèñåé: 2028 | Çàðåãèñòð. 20-08-2007 | Îòïðàâëåíî: 07:17 23-09-2016 | Èñïðàâëåíî: Maister, 17:01 23-09-2016 |
|