• Файл 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
    Ответ написан
    Комментировать
  • Почему в БД не заносится пароль?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    require "../sqlconnect.php"; #Подключение к бд через pdo
    
    $username = trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
      $email = trim(filter_var($_POST['email'], FILTER_SANITIZE_EMAIL));
      $login = trim(filter_var($_POST['login'], FILTER_SANITIZE_STRING));
      $password = trim(filter_var($_POST['password'], FILTER_SANITIZE_STRING));
    
      $error = '';
      if(strlen($username) <= 3){
        $error = 'Введите имя';
      }else if(strlen($email) <= 3){
        $error = 'Введите емейл';
      }else if(strlen($login) <= 5){
        $error = 'Введите логин';
      }else if(strlen($password) < 8){
        $error = 'Введите пароль';
      }
    
      if ($error != '') {
        echo $error;
        exit;
      }
    
      $hash = "3h#%89*H#($h%!~fh";
      $password = md5($password);
      
      $sql = 'INSERT INTO `userinfo` (`name`, `email`, `login`, `password`) VALUES(?,?,?,?)';
      $query = $pdo->prepare($sql);
      $query->execute([$username, $email, $login, $password]);
    
      echo 'Готово';

    Достаточно местами поменять, ведь в подключаемом файле require "../sqlconnect.php"; -> $password = '';, он перезаписывает Вашу переменную на пустую строку.
    Ответ написан
    Комментировать
  • Как решить ошибку 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 почитайте, может подойдёт под вашу задачу)
    Ответ написан
    Комментировать
  • Как придать необычную форму div средствами CSS?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    .block {
         clip-path: polygon(0% 40%,100% 0%,100% 100%,0% 100%) margin-box;
         margin: 0;
    }
    попробуйте так..
    Ссылка на статью - здесь подробнее об этом говориться
    Ответ написан
    1 комментарий
  • Как реализовать такой дизайн меню в CSS?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    Вообще "закруглялки" делаются с помощью border-radius: 5px 0 0 0;
    Чтобы было более понятнее:
    border-radius: "правый верхний угол" | "правый нижний угол" | "левый нижний угол" | "левый верхний угол"
    ИЛИ
    border-top-right-radius: 5px;
    borde-top-left-radius: 5px;
    borde-bottom-right-radius: 5px
    borde-bottom-left-radius: 5px

    Также
    border-radius: 5px;
    Это округлит все углы на 5px
    Ответ написан
  • Как пожаловаться на приложение в Google Play?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    https://support.google.com/legal/troubleshooter/1114905 надеюсь поможет Вам!
    Ответ написан
    Комментировать
  • Как вывести нужные поля из JSON?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    Попробуйте вот так!
    var url_json = 'https://www.site.com/json.txt';
    function init(){
        fetch(url_json)
            .then(response => response.json())
            .then(_json => {
                let artist = document.getElementById('artist');
                let title= document.getElementById('title');
                 artist.innerHTML = _json.artist;
                 title.innerHTML = _json.title;
            });
    }
    setInterval(init,1000);

    ИЛИ
    var url_json = 'https://www.site.com/json.txt';
    function init(){
        fetch(url_json)
            .then(response => response.json().then(_json => {
                let artist = document.getElementById('artist');
                let title= document.getElementById('title');
                 artist.innerHTML = _json.artist;
                 title.innerHTML = _json.title;
            }));
    }
    setInterval(init,1000);

    В вашем примере ошибка - Метод JSON.parse() разбирает строку JSON, а вы передаёте не строку JSON, а url
    Ответ написан
    Комментировать
  • Как сделать, если элементов больше 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);
    });
    Ответ написан
  • Что за ошибка в товарах product.php on line 432 - 436?

    IsSavinykh
    @IsSavinykh
    Full-Stack Веб-разработчик, мобильный разработчик
    Объявите переменную $result = [] перед конструкциями if, foreach и т.д.
    $result = [];
    if(...) {
         foreach(... as ...) {
              $images = $this->model_catalog_product->getProductImages($result['product_id']);
              if(isset($images[0]['image']) && !empty($images)){
                   $images = $images[0]['image']; 
              } else {
                   $images = $image;
              }
    }
    Ответ написан
    2 комментария