Ответы пользователя по тегу JavaScript
  • Файл JSON из facebook, как отобразить русский текст?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    $json = utf8_encode($str); 
    $results = json_decode($json, TRUE);
    var_dump($json);

    ИЛИ как писали выше
    $json = json_decode(json_encode($str, JSON_UNESCAPED_UNICODE), TRUE);
    var_dump($json);

    С версии PHP 7.2.0 функция utf8_encode была перенесена в ядро PHP, таким образом отменив требование расширения XML для использования этой функции.
    Ответ написан
    Комментировать
  • Как сделать AJAX запрос без jqury?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    Без Jquery можете воспользоваться JS fetch()
    Примерно это будет выглядеть вот так:
    const url="http://example.com/roomUser/BootData.php";
    
    fetch(url)
    	.then(response => response.json())
    	.then(BootData => {
    		console.log(BootData);
    	});

    ИЛИ
    const url="http://example.com/roomUser/BootData.php";
    
    fetch(url)
    	.then(response => response.json().then(BootData => {
    		console.log(BootData);
    	}));

    Вместо example.com - ваш url
    Ответ написан
    Комментировать
  • Как решить ошибку no-mixed-operators?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    Функция правильно выполняется.
    Добавьте перед функцией:
    /*eslint no-mixed-operators: "error"*/
    https://eslint.org/docs/rules/no-mixed-operators - документация
    Ответ написан
    Комментировать
  • Как сделать такой option?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    Попробуйте так: jsfiddle.net/rp4Se/4

    Добавлять в option нельзя, но можно разделять по контенту, либо добавить дополнительный атрибут data-* из которого уже отображать пользователю в кастомном селекте. Вам нужно эмулировать селект, чтобы добиться требуемого поведения.
    Ответ написан
    Комментировать
  • Как на чистом javascript сделать модальное окно?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    https://learn.javascript.ru/uibasic почитайте, может подойдёт под вашу задачу)
    Ответ написан
    Комментировать
  • Как сделать, если элементов больше 5 - то они скрывались? И открывались по нажатии кнопки?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    При генерации блоков задайте атрибут hidden всем блокам, начиная с шестого (чтобы первые 5 отображались)
    <div class="content">
       <div class="filter">
          <p>Текст - 1</p>
       </div>
       <div class="filter">
          <p>Текст - 2</p>
       </div>
       <div class="filter">
          <p>Текст - 3</p>
       </div>
       <div class="filter">
          <p>Текст - 4</p>
       </div>
       <div class="filter">
          <p>Текст - 5</p>
       </div>
       <div class="filter" hidden>
          <p>Текст - 6</p>
       </div>
       <div class="filter" hidden>
          <p>Текст - 7</p>
       </div>
       <div class="filter" hidden>
          <p>Текст - 8</p>
       </div>
       <div class="filter" hidden>
          <p>Текст - 9</p>
       </div>
       <div class="filter" hidden>
          <p>Текст - 10</p>
       </div>
       <p class="show_content">Показать остальное</p>
    </div>

    Далее на Jquery напишите код..
    $(document).ready(() => {
            $('body').on('click', '.show_content' , () => {
                var scrollToProduct = $('.filter:hidden');
                $('.filter:hidden:lt(5)').slideDown(1000);
                if (scrollToProduct.length === 0) $('.show_content').hide() ;
                $('html, body').animate({
                    scrollTop: scrollToProduct.offset().top
                }, 1000);
            });
        });

    $('.filter:hidden:lt(5)').slideDown(1000); - 5 можете заменить на любое значение, именно столько блоков будут отображаться при каждом нажатии на "Показать остальное"
    Также может быть будет полезным после нажатия на кнопку "Показать остальное", чтобы вас плавно скроллило на первый новый отобразившийся блок)
    Либо, если Вам нужно, чтобы при нажатии на кнопку отображались все блоки, то напишите:
    $(document).ready(() => {
            $('body').on('click', '.show_content' , () => {
                var scrollToProduct = $('.filter:hidden');
                $('.filter:hidden').slideDown(1000);
                if (scrollToProduct.length === 0) $('.show_content').hide() ;
                $('html, body').animate({
                    scrollTop: scrollToProduct.offset().top
                }, 1000);
            });
        });

    или примитивный вариант:
    $(document).ready(() => {
            $('body').on('click', '.show_content' , () => {
                var scrollToProduct = $('.filter:hidden');
                $('.filter:hidden').show();
                if (scrollToProduct.length === 0) $('.show_content').hide() ;
            });
        });
    Ответ написан
    Комментировать
  • Как получить значения из пришедшего json'a?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    Попробуйте так) Я как понял вам же нужно в обычный массив преобразовать?
    $.get('http://work-market-api.local/api/posts', {},
         function (response) {
              var dataObj = JSON.parse(response);
              var arr = [];
              for(var i in dataObj) { 
    	       arr[i] = [];
    	       for(var index in dataObj[index]) {
    	            arr[i][index] = dataObj[i][index];
    	       }
              }
              console.log(arr);
    });
    Ответ написан