Задать вопрос
  • Автозамена значения input в форме PHP AJAX?

    @Darklt Автор вопроса
    Попробовал через PHP не сработало.

    ВОт код JS отправки всей формы:

    Вставил туда где Отправка форм. но тоже не работает. Буду благодарен за совет.
    /**
     * Created with JetBrains PhpStorm.
     * User: Vitaly
     * Date: 06.06.13
     * Time: 20:22
     * To change this template use File | Settings | File Templates.
     */
    function inArray(needle, haystack) {
        var length = haystack.length;
        for(var i = 0; i < length; i++) {
            if(typeof haystack[i] == 'object') {
                if(arrayCompare(haystack[i], needle)) return true;
            } else {
                if(haystack[i] == needle) return true;
            }
        }
        return false;
    }
    window.isset = function (v) {
        if (typeof(v) == 'object' && v == 'undefined') {
            return false;
        } else  if (arguments.length === 0) {
            return false;
        } else {
            var buff = arguments[0];
            for (var i = 0; i < arguments.length; i++){
                if (typeof(buff) === 'undefined' || buff === null) return false;
                buff = buff[arguments[i+1]];
            }
        }
        return true;
    }
    function myconf() {
        var cf = $.Deferred();
            $.ajax({
                type: 'POST',
                url: 'feedback/',
                dataType: 'json',
                data: 'act=cfg',
                success: function(answer) {
                    cf.resolve(answer.configs);
                }
            });
        return cf;
    }
    var mcf = myconf();
    mcf.done(function(conf) {
    $(document).ready(function() {
    (function() {
               var fb = $('.feedback');
               if(fb.length > 0) {
                    fb.each(function(){
                        var form = $(this).closest('form'), name = form.attr('name');
                        //console.log(form);
                        if(isset(conf[name]) && isset(conf[name].cfg.antispamjs)) {
                          $(form).prepend('<input type="text" name="'+ conf[name].cfg.antispamjs +'" value="tesby" style="display:none;">');
                        }
                    });
                }
      })();
    });
    //Проверка полей форм
    for (var i = 1; i <= 4; i++) {
       $.lFormerCheckField('form'+i+'name', 'text', "Пожалуйста, введите ваше имя");
       $.lFormerCheckField('form'+i+'phone', 'phone', "Необходимо указать номер телефона");
       $.lFormerCheckField('form'+i+'email', 'email', "Не корректный Email адрес");
       $.lFormerCheckField('form'+i+'city', 'text', "Слишком короткое название города");
    }
    /**
     * Отправка форм.
     *
     */
    var email = $('#form2email').val() || 'Нет';
    var email = $('#form1email').val() || 'Нет';
    var email = $('#form3email').val() || 'Нет';
    var email = $('#form9email').val() || 'Нет';
    var email_asked = 1;
    function feedback(vars) {
        var bt = $(vars.form).find('.feedback');
        var btc = bt.clone();
        var bvc = bt.val();
        var cfg = conf[vars.act].cfg;
        
        //проставляем полям галочку, что верно (Пока убрал)
      //  $("form[name='" +vars.act+ "']").find("input").each(function(){
        //    if($(this).val().length > 0){
          //      $(this).addClass("inp_sucess");
           // }
      //  });
        
       // $('.err_mess').remove();    
        
       /* $(vars.form).find('[name="e-mail"]').change(function(){
            if($(vars.form).find('[name="e-mail"]').val().length > 3){
                email_asked++;
            }else{
                email_asked = 0;
            }
        }); */   
        $.ajax({
            type: 'POST',
            url: 'feedback/',
            cache: false,
            dataType: 'json',
            data: 'act=' + vars.act + '&' + vars.data + '&email_asked=' + email_asked,
            beforeSend: function() {
                //$(bt).val('');
                $(bt).prop("disabled", true);
                $(bt).addClass('loading');
            },
            success: function(answer) {
                //console.log(cfg);
              if(isset(cfg.notify) && !/none/i.test(cfg.notify)) {
                 if(/textbox/i.test(cfg.notify)) {                
                        if(isset(answer.errors)) {
                            $.each(answer.errors, function(k,val) {                            
                                //$.jGrowl(val, {theme: 'error', header: 'Ошибка!', life: 3000 });
                              $(vars.form).find('[name='+ k +']').parent().find('.err_mess').remove(); 
                              $(vars.form).find('[name='+ k +']').after('<div class="err_mess">' +val+ '</div>');
                            });
                        } if(isset(answer.infos)) {
                            $.each(answer.infos, function(k,val) {
                                $("input[name='" +k+ "']").addClass("inp_error");
                                //$.jGrowl(val, {theme: 'infos', header: 'Внимание!', life: 3000 });
                                
                                $(".popup7, #overlay").fadeIn(300);
                                $("#overlay").click(function(){
                                    $(".popup7").fadeOut(300); 
                                });
                                setTimeout(function () { $(".popup7, #overlay").fadeOut(400); }, 3000);
                            });
                        }
                }  if(/color/i.test(cfg.notify)) {
                     $(vars.form).find('input[type=text]:visible, textarea:visible, select:visible').css({'border': '1px solid #D7D5CF'}, 300);
                     if(isset(answer.errors)) {
                         $.each(answer.errors, function(k,val) {
                             var reg = /[a-z]/i;
                             if(reg.test(k)) {
                              var e = $(vars.form).find('[name='+ k +']');
                              if(e.length == 1) {
                                $(e).css({'border': '1px solid #FF532E'}, 100);
                                $(e).removeClass("inp_sucess");
                                $(e).addClass("inp_error");                           
                              }
                            }
                         });
                     } if(isset(answer.infos)) {
                          var li='', $inf = $('<ul>', {id:'feedback-infolist'});
                           $.each(answer.infos, function(k,val) {
                              li += '<li>'+ val +'</li>';
                           });
                          $inf.html(li);
                        //  $.arcticmodal('close');
                        //  if(/modal/i.test(cfg.notify)) {
                       //       var m = $('<div class="box-modal" id="feedback-modal-box" />');
                      //        m.html($inf);
                      //        m.prepend('<div class="modal-close arcticmodal-close">X</div>');
                      //        $.arcticmodal({content: m});
                      //    }
                           //bt.replaceWith($inf);
                         /* setInterval(function(){
                            //$('#feedback-inf-box').replaceWith(btc);
                            $('#feedback-modal-box').arcticmodal('close');
                          }, 4000);*/
                      }
                }
              }
                $(bt).prop("disabled", false);
                $(bt).removeClass('loading');
                
                if(isset(answer.ask_email) && answer.ask_email == 1){
                    $(".modal_block3").fadeIn(300);
                    $(".modal_close3").click(function(){
                        $(".modal_block3").fadeOut(300);
                        $(vars.form).find('[name="e-mail"]').focus();
                    });
                    email_asked++;
                }else if(isset(answer.ok) && answer.ok == 1) {
                    //Передаём данные из формы в CRM
                    sendFormer($(vars.form));         
    
                    $(vars.form)[0].reset();
                    //закрытие модального окна после успешной отправки
                    $(".modal_block").fadeOut(300);
                    //затираем все стили правильнозаполненных полей
                    $(".inp_sucess").removeClass('inp_sucess');                
    				yaCounter36056540.reachGoal('ClickActionTarget');				return true;	
                }
            }
        });
    }
        $(document).on('mouseenter mouseover', '.feedback', function(){
            var form = $(this).closest('form'), name = form.attr('name');
            if(isset(conf[name]) && isset(conf[name].cfg.antispamjs)) {
                $('input[name='+ conf[name].cfg.antispamjs +']').val('');
            }
        });
    /**
     * Обработчик кнопки форм.
     * Кнопка должна быть внутри тегов <form> c классом .feedback
     * будет отправлено любое кол-во полей, кроме файлов
     *
     */
    $(document).on('click', '.feedback', function(){
       var form = $(this).closest('form'), name = form.attr('name'), obj = {};
           obj.form = form;
           obj.act = name;
           obj.data = $(form).serialize();
          feedback(obj);
        return false;
    });
    }); // done
    
    //Цепляем слушатель отправки формы
    function sendFormer(form){
      var name = form.find('input[name=name]').val(),
        phone = form.find('input[name=tell]').val(),
        email = form.find('input[name=e-mail]').val(),
        branchId = '83', 
        dealType = '2';
    
      console.log("Успешно!");
    
      //отправляем в CRM
      createDeal(email, name, phone, branchId, dealType);
    };
    
    function createDeal(email, name, phone, branchId, dealType, cb) {
        cb = cb || null;
    
        $.get('http://cast.ru/api/create_external_deal?branch_id='+ branchId +
            '&deal_type=' + dealType + '&secret=11111&email=' +
            email + '&name=' + name + '&phone=' + phone, {}, function(response) {
            if (cb && typeof cb == 'function') {
                cb(response);
            }
        });
    }
  • HTML сортировка bitrix.news как вручную?

    @Darklt Автор вопроса
    А поподробнее наглядно?