За последние 24 часа нас посетили 18594 программиста и 1688 роботов. Сейчас ищут 1607 программистов ...

Динамический div (не обновляется значение в div)

Тема в разделе "JavaScript и AJAX", создана пользователем MikeJuli, 14 мар 2017.

  1. MikeJuli

    MikeJuli Новичок

    С нами с:
    23 дек 2016
    Сообщения:
    9
    Симпатии:
    0
    Доброго времени суток, ребятки! Нужна ваша помощь!
    Есть скрипт который подгружает строки с двух станиц. В консоле всё выводится ровно, а в div почему то выводится только когда скрипт полностью отработает.

    Код (Javascript):
    1. <script>
    2.  
    3.      //отправляем ajax запрос на первую страницу
    4.  
    5. var BaseConfig1= $.ajax({
    6.                        async:false,
    7.                        url:'/bg_1.php',
    8.                        type:'post',
    9.                        data:{'param1': "value1"},
    10.                        dataType:"TEXT"
    11.                        }).responseText;  
    12.      
    13. //вывод в div не отрабатывает
    14. $(document).ready(function() {    
    15.         $('#content1').html(BaseConfig1);
    16.     });
    17.  
    18. //консоль всё показывает
    19.    console.log(BaseConfig1);
    20.  
    21. //отправляем ajax запрос на вторую страницу
    22.  
    23.     var BaseConfig2= $.ajax({
    24.                        async:false,
    25.                        url:'/bg_2.php',
    26.                        type:'post',
    27.                        data:{'param2': "value2"},
    28.                        dataType:"TEXT"
    29.                        }).responseText;  
    30.  
    31. // тут уже всё выводит полностью, т.к скрипт отработал
    32.        $(document).ready(function() {
    33.         $('#content2').html(BaseConfig2);
    34.     });
    35.  
    36. //консоль всё показывает
    37.    console.log(BaseConfig2);
    38.  
    39.  
    40.  
    HTML:
    1. <div id="content1"></div>
    2. <div id="content2"></div>

    Никак не могу сообразить что я забыл(

    Заранее спасибо!
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    752
    Адрес:
    Татарстан
    Код (Text):
    1.  async:false,
     
  3. MikeJuli

    MikeJuli Новичок

    С нами с:
    23 дек 2016
    Сообщения:
    9
    Симпатии:
    0
    Я думал в эту сторону, но если я изменю это значение, как я узнаю когда отработает bg_2.php или bg_1.php там внутри выполняется код секунд по 5-6 , и если я изменю async то значения я оттуда так и не смогу получить.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    752
    Адрес:
    Татарстан
    при отмене асинхронности - скрипт в любом случае будет ждать пока он отработает.
    вам вызов аякса надо по другому просто сделать... есть там метод succes вот туда и вешать обновление дива
    Код (Javascript):
    1. $.ajax({
    2.                        url:'/bg_1.php',
    3.                        type:'post',
    4.                        data:{'param1': "value1"},
    5.                        dataType:"TEXT",
    6.                        success: function (data)   {
    7.                        $('#content1').html(data);
    8.                     }
    9.                        })
     
    #4 ADSoft, 14 мар 2017
    Последнее редактирование модератором: 14 мар 2017
  5. MikeJuli

    MikeJuli Новичок

    С нами с:
    23 дек 2016
    Сообщения:
    9
    Симпатии:
    0
    Хороший вариант, спасибо! Но вот как теперь это значение запихнуть в переменную? которая в моём случае была
    Код (Javascript):
    1. var BaseConfig1= $.ajax({
    2. ..........
    как сделать конструкцию что-то типа : ниже не рабочий вариант.
    Код (Text):
    1. $.ajax({
    2.                        url:'/bg_1.php',
    3.                        type:'post',
    4.                        data:{'param1': "value1"},
    5.                        dataType:"TEXT",
    6.                        success:function (data)   {
    7.                        $('#content1').html(data);
    8.                     }
    9. var result = data;
    10.                        })
    что-то в таком роде, просто это значение мне нужно для обработки.

    Есть ли возможность сделать так чтобы одновременно это значение попадало и в div и сразу же отображалось и в переменную var?
     
    #5 MikeJuli, 14 мар 2017
    Последнее редактирование: 14 мар 2017
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    752
    Адрес:
    Татарстан
    если нужно использовать во втором аяксе результаты первого - что мешает поместить вызов второго аякса в succes первого аякса ?
    внутри его - значение в переменной data
     
    MikeJuli нравится это.
  7. MikeJuli

    MikeJuli Новичок

    С нами с:
    23 дек 2016
    Сообщения:
    9
    Симпатии:
    0
    Попробую объяснить по другому, что мне требуется: у меня есть 10 ajax запросов на сервер, и каждый возвращает ответ через разное время. Мне нужно когда вернётся первый ответ вывести его в div. Когда вернется второй ответ должен сработать фильтр по цене уже на первый и второй запрос и вывести лучшую цену с первого и второго. И так по мере подгрузки (ответов от сервера) этот список динамически должен обновляться. Сам механизм понятен, но хочу понять, как один ajax ответ можно положить и в div и в переменную.

    По совету который вы дали выше, если возвращать значение из $.ajax({ он вернет [undefined[object Object].
    Может есть другой способ или другой подход вовсе ?
     
  8. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    клади не в простую переменную, а в localStorage, например