Дорогие друзья, всю голову изломал, не могу понять как правильно сделать.
Есть форма на сайте, аяксом отправляется, вот часть html инпутов, как пример NAME все работает отлично на всех моментах до почты пользователя. НО понадобилось добавить RADIO кнопки, и все труба, а проблема в том, что не знаю как отправлять на почту только выбранный РАДИО, они все имеют значения, и аякс отправляет их успешно, php принимает и в письмо, и никаких выбранных, или все, или ничего
| Код | <label class="name"> <input type="text" value="Введите ваше имя:"> <br class="clear"> <span class="error error-empty">*</span><span class="empty error-empty">*</span> </label> вот они мои кнопочки проблемные: <label class="kol"> <input type="radio" class="group1" name="kol" value="1" checked> 1 шт<br> <input type="radio" class="group1" name="kol" value="2"> 2 шт </label>
|
вот часть обработчика яваскрипт, кjторый уже передает PHP, и вот тут я думаю самая заморочка с этим getValFromLabel, если без него, то все две переменные отправляет. Вот как тут правильно написать что бы VALUE одно и ВЫБРАННОЕ улетало к php?????
| Код | //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:'[email protected]', product:'Заказ', stripHTML:true, smtpMailServer:'localhost', targets:'input,textarea', controls:'a[data-type=reset],a[data-type=submit]', validate:true, rx:{ ".state":{rx:/.{2}/,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:/.{15}/,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)), gate:$('input.gate',_.form).val()||'nope', key:$('input.key',_.form).val()||'nope', count:_.getValFromLabel($('.count',_.form)), kol:$('input.kol',_.form).val()||'nope', twok:$('input.twok',_.form).val()||'nope', sam:$('input.sam',_.form).val()||'nope', deliw:$('input.deliw',_.form).val()||'nope', posta:$('input.posta',_.form).val()||'nope', fax:_.getValFromLabel($('.fax',_.form)), //message:_.getValFromLabel($('.message',_.form)), message:$('input.message',_.form).val()||'nope', pro_duct:_.product, 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(){ $('#form').forms({ ownerEmail:'[email protected]', product:'ЗАКАЗ ОБРАТНОГО ЗВОНКА (верх)' }) }) $(window).load(function(){ $('#form1').forms({ ownerEmail:'[email protected]', product:'ЗАКАЗ ОБРАТНОГО ЗВОНКА (низ)' }) }) $(window).load(function(){ $('#form2').forms({ ownerEmail:'[email protected]', product:'ЗАЯВКА НА 5 КОМПЛЕКТОВ (верх)' }) }) $(window).load(function(){ $('#form3').forms({ ownerEmail:'[email protected]', product:'ЗАЯВКА НА ПОКУПКУ ОПТОМ' }) }) $(window).load(function(){ $('#form4').forms({ ownerEmail:'[email protected]', product:'ЗАЯВКА НА 5 КОМПЛЕКТОВ (низ)' }) }) $(window).load(function(){ $('#order0').forms({ ownerEmail:'[email protected]', product:'ЗАКАЗ ПРОДУКЦИИ от 1 КОПМПЛЕКТА' }) }) $(window).load(function(){ $('#order2').forms({ ownerEmail:'[email protected]', product:'ЗАКАЗ ПРОДУКЦИИ от 3 КОПМПЛЕКТОВ' }) }) $(window).load(function(){ $('#order3').forms({ ownerEmail:'[email protected]', product:'ЗАКАЗ ПРОДУКЦИИ от 5 КОПМПЛЕКТОВ' }) })
|
Вот тут принимается и на почту, но главное распечатывает все и выбранные и не выбранные .
| Код | if($_POST['kol']!='nope'){ $kol = $_POST["kol"]; $messageBody .= '<p>штуки: ' .$kol. ' комплект</p>' . "\n"; }
|
Как сделать так, что бы kol:$('input.kol',_.form).val()||'nope', в яваскрипт обработчике, принимал только выбранной кнокпи значение???? И отправлял в одной переменно в php обработчик? |