• Fetch как передать строку в php?

    cyber-jet
    @cyber-jet
    Если нужно получить только строку:
    const photo = "https://blablabla.ru/sss.jpg?us=22&qq=11";
    fetch("https://example.site/example/example.php", {
      method: "POST",
      body: photo,
    });

    $string = file_get_contents("php://input");
    echo $string;
    Ответ написан
    Комментировать
  • Как сделать перемещение по странице с помощью перетаскивания?

    cyber-jet
    @cyber-jet
    События ondragstart, на тачскинах событие другое, TouchEvent.
    Ответ написан
  • Как добавить чекбокс в пользовательский тип свойства инфоблока?

    cyber-jet
    @cyber-jet
    Можно завести свойство "список" - "да", "нет", отображать как флажки или радио. Если в паблике надо как чекбокс, нужно модифицировать шаблон формы.
    Ответ написан
    Комментировать
  • Как сверстать данный фон(background)?

    cyber-jet
    @cyber-jet
    Не знаю как у вас там по верстке, сделал величины относительно контейнера, лучше сделать в абсолютных величинах:
    <div class="container">
      <div class="fig"></div>
    </div>


    .container {
      position: relative;
      border: 1px solid #000;
      width: 800px; 
      height: 400px;
      overflow: hidden;
    }
    .fig {
      position: absolute;
      top: 0;
      left: -105%;
      width: 150%; 
      height: 150%;
      transform: skew(-20deg, -25deg);
      background: linear-gradient(180deg, #C91C04 0%, #4B0900 100%);
    }
    Ответ написан
    2 комментария
  • Почему не срабатывает регистрация пользователя в битрикс?

    cyber-jet
    @cyber-jet
    Если значения полей формы собирает JavaScript в браузере, скорее всего через интерфейс FormData(), туда не попадает значение кнопки submit. При синхронной обработке на стороне сервера такой проблемы бы не было. Часто так бывает что у формы есть несколько кнопок сабмит с разными именами и(или) значениями, внутри обработчика события доступ к сработавшей кнопке можно получить через event.submitter.
    document.getElementById("form").addEventListener("submit", (event) => {
      event.preventDefault();
      let data = new FormData(event.target);
      if (event.submitter) {
        data.append(event.submitter.name, event.submitter.value);
      }
    
      // ...скрипт отправки формы
    });
    Ответ написан
    Комментировать
  • Как получить данные из Promise?

    cyber-jet
    @cyber-jet
    Ваша функция ни чего не возвращает, а следуя логике вашего вопроса, должна вернуть результат после выполнения промиса:
    function one() {
      return fetch(
        "https://api.github.com/repos/javascript-tutorial/en.javascript.info/commits"
      )
        .then((res) => res.json())
        .then((data) => data);
    }

    и чтобы дождаться выполнения обещания, а потом показать результат:
    one().then(console.log);

    PS: ключевое async тут лишнее, так как функция и так возвращает объект Promise.
    Ответ написан
    Комментировать
  • Как отображать элементы в зависимости от масштаба содержащего их блока?

    cyber-jet
    @cyber-jet
    Самый просто способ, если величина масштаба известна, захардкодить условия отображения: галактики -> звёзды -> планеты и т.д.
    Ответ написан
  • Как нарисовать изогнутую линию на css?

    cyber-jet
    @cyber-jet
    Не изогнутую а наклонную, свойство transform: rotate(5deg) в данном случае повернёт контейнер со всем содержимым на 5 градусов по часовой вокруг центра, если нужно против часовой, используется отрицательное значение.
    Ответ написан
    Комментировать
  • Как по ajax поменять название кнопки?

    cyber-jet
    @cyber-jet
    Потому что json это объект, а вы работаете с ним как с массивом. Если у вас в ответе и правда json, то нужно так:

    if(json.success) {
       ... json.total_cart...
    }
    Ответ написан
    Комментировать
  • Как с помощью php отдать react?

    cyber-jet
    @cyber-jet
    На проде обычно js код приложения проходит обфускацию и минификацию, понятно что это от не гарантия, но просто так открыть код и причитать не получится.

    В SPA всё приложение отдается целиком, дальше общается с бэком через api, получая только данные, в зависимости от состояния и полученных данных приложение отображает информацию. Т.е. в приложении изначально данных нет. Более того, приложение не обязательно должно общаться только с одним бэкм(доменом), оно может слать запросы куда угодно, где будут готовы дать ему ответ, таким образом реализуется структура микросервисов, когда каждый сервис выполняет свою задачу независимо от другого. Например учётные записи пользователей, номенклатура, остатки и цены, заказы - это всё могут быть независимые сервисы.

    Если не хотите всем подряд светить js файл с аппом, сделайте стандартную страницу авторизации на php, авторизованным пользователям в ответ отдавайте js файл приложения, который после получения будет запускаться.
    Ответ написан
    Комментировать
  • Почему вылазит ошибка self.querySelector(...) is null?

    cyber-jet
    @cyber-jet
    Посмотрите что в self присваивается, выведете в консоль consol.log(self).
    Ответ написан
    Комментировать
  • Как решить проблему с рассинхронизацией данных при вызове функции?

    cyber-jet
    @cyber-jet
    Ни какого рассинхрона не происходит, просто данные передаются в одну сторону, самое простое, в TheAdminPagination.vue повесить вотчер на totalPages, если меняется, сбрасывать на 1. В данном коде передавать prop currentPage из родителя не имеет ни какого смысла.
    Ответ написан
    1 комментарий
  • Как получить файл из формы с input type="file" в PHP или в целом получить файл любым способом?

    cyber-jet
    @cyber-jet
    Массив файлов, передаваемых формой выводится в $_FILES, ключом является название поля, например input type="file" name="avatar", тогда чтобы получить путь к файлу из временной директории:
    <?
    $tmp_dir = '/var/www/uploads/'; // путь к временной директории из настроек php.ini
    $tmp_file = $tmp_dir . basename($_FILES['avatar']['name']); // путь к временному файлу
    ?>

    Дальше нужно переместить файл туда, где хотите хранить картинки на сервере, а путь записать в базу.

    Инфа на php.net.
    Ответ написан
    6 комментариев
  • Зачем нужна анонимная функция как параметр в setState()?

    cyber-jet
    @cyber-jet
    Это по сути одно и то-же. Второй вариант если что-то ещё нужно сделать перед установкой состояния.
    Ответ написан
    Комментировать
  • Как развернуть REST API на 1С-Битрикс?

    cyber-jet
    @cyber-jet
    Мой вариант реализации для собственного модуля. История мутная, слишком много вопросов, слишком мало ответов, документации для этого модуля в БУС до сих пор нет, лишь вот эти несколько абзацев, на предмет как можно пробросить свои контроллеры в REST Битрикс, удобно иметь схожие методы и схемы данных для SPA и приложения. Добавил в описание контроллера нужное, в адресной строке перешел к нужному методу и словил так-же wrong_authorization. Ни где нет описания как создавать токены непосредственно в БУС. Единственная зацепка, статья интерволги, и пример от MaxKozlov, с одной лишь разницей, другой путь к странице, не в /local/.., потому что это служебная папка для разработки, и не нужно ни чего добавлять в urlrewrite.php, так как в настройках модуля уже есть SEF_MODE = Y и массив шаблонов ссылок SEF_URL_TEMPLATES, только нужно сохранить код страницы в визуальном редакторе Битрикс(это важно), и нужные записи в urlrewrite.php пропишутся автоматом. После чего получилось создать входящий токен, но моего модуля в правах не было, выбрал iblock, в таблице базы данных с правами доступа к rest ручками переправил на название своего модуля, и всё заработал.

    Переходим по ссылке:
    https://сайт/rest/1/токен/имя:модуля.api.имякласса.метод
    ..и наслаждаемся результатом.

    имя:модуля.api - defaultNamespace, указанный в контроллере - докумантация.

    PS: Для понимания, то-же самое у меня получает SPA через интерфейс ajax
    https://сайт/bitrix/services/main/ajax.php?action=имя:модуля.имякласса.метод
    но там другая структура выполнения и вэб авторизация.
    Ответ написан
    Комментировать
  • Почему не работает удаление элемента из массива?

    cyber-jet
    @cyber-jet
    Что-то у вас совсем всё сложно, это же vue!
    <template>
      <div
        class="element"
        v-for="data in elementData"
        :key="data.id"
        @click="data.show = !data.show"
      >
        <h1>Клик</h1>
        <div 
          v-if="data.show" 
          class="elementInfo"
        >
          <h5>{{ data.name }}</h5>
          <p>{{ data.id }}</p>
        </div>
      </div>
    </template>
    Ответ написан
    Комментировать
  • Можно ли сделать так, чтобы скрипт выполнялся при изменении масштаба сразу, а не только после обновления старинцы с помощью ctrl+f5?

    cyber-jet
    @cyber-jet
    нужно подписаться на пролслушку события на изменение размеров окна:
    window.addEventListener('resize', onResizeHandler, false);
    function onResizeHandler() {
        // handle the resize event
     }
    Ответ написан
    Комментировать
  • Как добавить в строку, чтобы HTML принял его за разрыв строки?

    cyber-jet
    @cyber-jet
    $('.someText').html('Первая строка<br>вторая строка');
    Ответ написан
    Комментировать
  • Почему возвращаются разные значения после промиса?

    cyber-jet
    @cyber-jet
    Что- то у вас тут напутано, зачем return перед axios? Не знаю как реализована реактивность в реакте, но она там определенно должна быть :) По сему вам нужно в коде компонента реализовать возможность получения асинхронных данных, создать пустой реактивный объект, а после выполнения promise менять состояние этого объекта исходя из полученных данных.
    Ответ написан