Ответы пользователя по тегу AJAX
  • Как составить запрос к БД, из множества селекторов и полей?

    petyagrill
    @petyagrill
    А вы попробуйте атрибутами плясать как тут

    В таком случае остается добавлять select-ы, код js менять не придется, ну и грамотную обработку php нужно сделать
    <select class="ajax-select" data-table="table1" data-result="#select2" id="select1">
    <option value="op0">op0</option>
    <option value="op1">op1</option>
    <option value="op2">op2</option>
    </select>
    <select class="ajax-select" data-table="table2" data-result="#select3" id="select2">
    <option value="">выберите вариант из select1 </option> 
    </select>


    $('.ajax-select').on('change', function(){ 
        var val = $(this).val();
        var table = $(this).data('table');
        var result = $(this).data('result');
        $.ajax({
            type: 'POST',
            url: 'http://site.ru/',
            data: ({table : table, val : val}),
            success: function(data){
                $(result).html(data);
                $(result).removeAttr('disabled');
            },
            error: function(){
                alert('error');
            }
        });
    });
    Ответ написан
  • Почему перестает работать label в ajax-загрузке?

    petyagrill
    @petyagrill
    Вообще я бы подошел к вашему вопросу с другой стороны:
    https://jsfiddle.net/54q5x90j/
    <ul>
    <li><a class="ajax-form" data-form="form1.html" data-content="#content">Форма 1</a></li><!--кнопка 1 таба-->
    <li><a class="ajax-form" data-form="form2.html" data-content="#content2">Форма 2</a></li><!--кнопка 2 таба-->
    <li><a class="ajax-form" data-form="form3.html" data-content="#content3">Форма 3</a></li><!--кнопка 3 таба-->
    <li><a class="ajax-form" data-form="form4.html" data-content="#content4">Форма 2</a></li><!--кнопка 4 таба-->
    </ul>
      <div id="content"><!--контент таба 1-->
      </div>
      <div id="content2"><!--контент таба 2-->
    </div>
      <div id="content3"><!--контент таба 3-->
    </div>
     <div id="content4"><!--контент таба 4-->
    </div>


    $('.ajax-form').on('click',function(e){
        e.preventDefault();
        var form = $(this).data('form');
        var content = $(this).data('content');
        $.ajax({
        	type: "POST",
       		url: form,
        	cache: false,
        	success: function(data) {
        		 $(content).html(data); 
        	},
        	error: function(data) {
        		$(content).html('data-err');
                
        	}
        });
    });


    Ну а label не работает скорее всего из-за того что дублируются id на который он ссылается

    Наведите код всех форм
    Ответ написан
  • Не работает простейший ajax запрос?

    petyagrill
    @petyagrill
    Он и должен всегда показывать правильно при таком подходе
    Ведь кроме результата обработки php в ответ вы получаете всю сгенерированную html страницу

    если быстро хотите решить задачу то поменяйте код php на
    <?php
    if(isset($_POST['submit'])){
        if($_POST['login'] == "Admin"){
           echo "Неправильно";
    return;
        }
        else {
            echo $_POST['login'];
    return;
        }
    }
    ?>

    Но работать оно будет если php находиться в самом начале страницы, и главное проверьте нет ли лишних пробелов
    Ну а лучше обработку ajax перенесите в отдельный скрипт
    Ответ написан
  • Перестала срабатывать кнопка отправки в вебформах. Что делать?

    petyagrill
    @petyagrill
    Если быстро, то добавьте этот код и ждите программиста
    Это решит проблему с отправкой форм в первом блоке (там где слайдер), форму с вызовом специалиста возможно решит предложенный выше вариант

    #block-webform-client-block-26 div#edit-actions {
        text-align: right;
        padding: 15px;   text-align: right;   border-top: 1px solid #e5e5e5;
        padding-right: 95px;
    }
    #block-webform-client-block-26 input[type=submit] { 
      display: inline-block;
      padding: 6px 12px;
      margin-bottom: 0;
      font-size: 14px;
      font-weight: 400;
      line-height: 1.42857143;
      text-align: center;
      white-space: nowrap;
      vertical-align: middle;
      cursor: pointer; 
      background-image: none;
      border: 1px solid transparent;
      border-radius: 4px;
      width: auto;
      background-image: -webkit-linear-gradient(top,#00695F 0,#05534D 100%);
      background-image: -o-linear-gradient(top,#00695F 0,#05534D 100%);
      background-image: -webkit-gradient(linear,left top,left bottom,from(#00695F),to(#05534D));
      background-image: linear-gradient(to bottom,#00695F 0,#05534D 100%);
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00695F', endColorstr='#ff05534D', GradientType=0);
      filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
      background-repeat: repeat-x;
      border-color: #00655b;
      color: #fff;
    }
    
    #modal_slider   .modal-footer {
        padding: 0;
        height: 0;
        position: relative;
        
    }
    
    #modal_slider  button.btn.btn-success.order_send {
        display: none!important;
    }
    
    #modal_slider .modal-footer button.btn.btn-default {
        position: relative;
        top: -80px;
        right: 15px;
    }
    Ответ написан
  • Подгрузка кусочков страниц при помощи ajax в опере и в хроме?

    petyagrill
    @petyagrill
    Тут как-раз мозила и сафари не правильно работают - думаю это связано с кешированием.
    Вам нужно независимое от браузера решение, надеяться на то что после обновления мозилы или сафари они будут вести себя также нельзя.

    Можно вставить ссылку "Вернуться назад" с определенными параметрами с помощью которых вы определите какой контент был загружен ранее и при нажатии выдавать его сразу. Но тут ситуация такова что посетитель может нажать как эту кнопку так и кнопку "назад" в панели браузера или же кнопку "backspace" и начнутся проблемы.

    Как вариант в сессии запоминать какой именно контент был загружен и после посещение этой же страницы выдавать его еще раз, но только в том случае если был переход как в вашем случае (тоесть: сраница с дин. контентом -> ссылка -> назад). Для этого можно хранить в сессии последние 2 посещенные страницы и проверять на совпадение.

    как по мне это решит Ваш вопрос, но уверен что есть более красивое и правильное решение
    Ответ написан