Задать вопрос
  • Почему false срабатывает как true?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Строка false, разумеется приводится к true.
    В РНР будет ровно то же самое, условие if('false') выполнится.

    А чтобы false воспринималось как булево значение, а не как строка, надо либо сказать твоему яваскрипту, что он ждёт специальным образом кодированные данные, либо РНР - что он отправляет не HTML, а некий другой формат.

    В общем, обилие комментаторов с советами вида "пальцем в небо" наглядно показывает уровень понимания средним пользователем похапе своих действий.

    В целом направление мысли верное - система воспринимает переданное значение как строку, а не как булево значение. Но на этом мысль и останавливается.
    Хотя при некотором усилии можно было бы продолжить и рассудить - что поскольку протокол НТТР чисто текстовый, то никакие булевы значения через него по умолчанию передать нельзя. А так же объекты, массивы, и прочие типы данных.
    И для того чтобы сделать это возможным, был придуман специальный формат кодирования. Который позволяет передавать данные различнызх типовв, и который автор, несомненно, уже применяет (вследствие чего, собственно, из булева значения и получается строка false).

    То есть единственным недостающим звеном в этой головоломке является контекст, в зависимости от которого яваскрипт будет воспринимать строку false либо как строку, либо как булево значение. То есть нужен способ РНР и яваскрипту договориться, в каком формате они обмениваются данными. Стандартным способом является НТТР заголовок Content-type. Который скажет браузеру, что данные не в дефолтом формате HTML, а в другом.

    Либо как вариант, можно прямо при вызове функции ajax явно задать, в каком формате придут данные. Если озаботиться изучением документации по этой функции.
    Ответ написан
    Комментировать
  • Есть ли аналог object-fit для background-image;?

    Kiriniy
    @Kiriniy
    Графический и веб-дизайнер
    Забавно, обычно наоборот спрашивают. Свойство background-size: cover или contain.
    Ответ написан
    4 комментария
  • Как получить кроссбраузерность?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Что еще нужно учесть для того, чтобы во всех браузерах верстка соответствовала макету?
    Много чего. Например то, что сафари на макосях построен на движке хорма, НО:
    а) всегда отстающей от текущей актуальной версии туеву хучу фишек не поддерживает (например гриды);
    б) Имеет некоторые отличия в коде, обусловленные "особенностями платформы;
    в) Вишенка на торте - хром под яблоком - это ниразу не хром. Это (тадааам!) сафари со скином хрома, который на движке хрома (парам-пара-пам, фью)!

    ЗЫ: Свежая байка из склепа рабочих будней. Сеошник выдает резюме по гуглспидтесту страничек - "у нас все плохо, давайте, как завещал великий гугл, сделаем картинки в вебп, это модно-стильно-молодежно, это нравится гуглу и пахнет ёлкой!". Ну, ок, пнули админа, он доставил вебп модуль, слепили патч, закатали в деплой на серв - ляпота, картинки сильно ужались, гуглу нравится, мне нравится, админу нравится, сеошник вообще ссытся кипятком, а шефу почему-то не нравится. На егойном айпадпро картинок нет. Привереда. Ладно, ищем причину... Выяснили что сафари (заодно со всем яблочным королевством) лютой лютостью ненавидят ваш вебп, в гробу его видали и уже тапки белые прикупили на этот случай. Ладно, поставим шефу хром, а в остальном у нас на сафари 1% пользователей, ченть потом придумаем... И тут мы узнали что такое хорм под айосью ))). Историю про то как ПРАВИЛЬНО написать тег picture для яблока - в следующей страшилке )
    Ответ написан
  • Я энтузиаст и мне 37 лет, знаю С++, есть неплохие результаты. Стоит ли заниматься программированием игр или уже поздно?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Заниматься чем-то поздно тогда, когда не позволяет состояние здоровья или ты уже в гробу. Если есть интерес — делай, он может стать чем-то серьезным и приносящим доход, но, конечно, и разочарованием жизни. Тут уже все от тебя зависит.
    Ответ написан
    Комментировать
  • Grid-column-gap и grid-row-gap - как сделать на flex-box?

    profesor08
    @profesor08 Куратор тега CSS
    gap для флексбоксов еще недостаточно хорошо поддерживается. По этому, если хочешь на флексах, тогда мучайся с отступами (margin-top, margin-left, margin-right). Но зачем, если можно использовать гриды?
    Ответ написан
    Комментировать
  • Как спрятать обратный слеш?

    @Redeve
    Веб-макаке не хватит и 640гБ
    Вы как-то неправильно отдаете джсон...
    $response = [ 'success' => $success, 'status' => $status, 'message' => $message . $addParams ];
    echo json_encode($response);


    Ну а слеши у вас, как уже сказали до меня - не выводятся. Всё ок
    Ответ написан
    Комментировать
  • Какой антивирус лучше ставить на планшет на андроиде?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Как обезопасить андроид от вирусов?

    Не лезть на порносайты, быть осторожнее с серфингом.
    Какой антивирус лучше ставить на планшет на андроиде?

    Я думаю мало чем поможет. Обновление сигнатур происходит не так часто, и шанс подцепить какую нибудь бяку - будет все равно высокий(в случае неадекватного серфинга). За последние 10 лет использования андроида, не разу не использовал антивирус, и вам советую не заморачиваться. Если андроид захочет отдать концы, он это сделает.
    Ответ написан
    Комментировать
  • Как переиспользовать компоненты Vue?

    coderisimo
    @coderisimo
    Компонент геренирует событие, родитель подписывается на него назначая свой обработчик. Таким образом в каждом конкретном случае обработчики могут быть различными и один и тот же компонент становится универсальным. См. пример :
    Ответ написан
    Комментировать
  • Как сгруппировать выборку по дням?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT DATE(`t`.`state_at`) AS `date`, `t`.`value`
      FROM (
        SELECT MAX(`state_at`) AS `max`
          FROM `table`
          GROUP BY DATE(`state_at`)
      ) AS `m`
      JOIN `table` AS `t`
        ON `t`.`state_at` = `m`.`max`

    Начиная с MySQL 8 можно через оконные функции:
    SELECT DISTINCT
        DATE(FIRST_VALUE(`state_at`) OVER `win`) AS `date`,
        FIRST_VALUE(`value`) OVER `win` AS `value`
      FROM `table`
      WINDOW `win` AS (
        PARTITION BY DATE(`state_at`)
        ORDER BY `state_at` DESC
      )
    Ответ написан
    2 комментария
  • Я сломал мышь, брызнув очиститель контактов, как починить?

    @lonelymyp
    Хочу вылезти из минуса по карме.
    А если тебе в интернете с крыши посоветую прыгнуть, ты тоже прыгнешь?
    Чистка мышки и клавиатуры начинается с того что их разбирают и убирают пластиковые детали подальше т.к. они могут тупо раствориться очистителем.
    Если поливал просто так внутрь корпуса, то жижа вперемешку с грязью теперь растеклась там куда попало и ясен пень после этого работать не будет.
    Разбирай клаву и мышку, промывай её от остатков средства спиртом. Если повезёт то работоспособность восстановится.
    Ответ написан
    2 комментария
  • Что лучше использовать vmin или vmax?

    AngryYumy
    @AngryYumy
    Заплати фрилансеру чеканой монетой
    Лучше юзать то что, что лучше подходит данной задачи.
    Вы напоминаете мне многих новичков которые думаю, что есть какой-то ультра четкий план - тип делай так и так и будешь топ
    Ответ написан
    6 комментариев
  • Какое самое наилучшее приложение для чтения книг на android?

    milssky
    @milssky
    Координатор племени фиолетовых обезьянок
    Я пользуюсь fbreader
    Ответ написан
    1 комментарий
  • Как найти файлы стилей если их нет в проекте?

    hzzzzl
    @hzzzzl
    попробуй это расширение для хрома, это наверняка исходники css перед компиляцией в один файл стилей
    https://qna.habr.com/answer?answer_id=1593003#answ...
    Ответ написан
    Комментировать
  • Скачать исходник сайта | Webpack source maps?

    hzzzzl
    @hzzzzl Автор вопроса
    РЕШЕНО
    нашелся экстеншен, который собирает все ресурсы в zip, включая эти виртуальные файлы вебпака

    https://chrome.google.com/webstore/detail/save-all...

    5e974c658d1f0688225019.png
    Ответ написан
    Комментировать
  • Как использовать переменную за пределами async function?

    @dGololobov
    начинающий
    async function getChannel(urlChannel){
          const urlChannelResult = await fetch(urlChannel)
          const jsonChannel = await urlChannelResult.json()
          const authorPhoto = jsonChannel.items[0].snippet.thumbnails.high.url
          console.log(authorPhoto
         return authorPhoto
        }
    [...].map(async el => {
         const authorPhoto = await getChannel(el.url)
         // ....
    })
    Ответ написан
    3 комментария
  • Как лучше реализовать вывод модальных окон в VUE?

    Fragster
    @Fragster
    помогло? отметь решением!
    Наделать самодостаточных компонентов, которые будут открывать нужные окна, содержа в себе состояние окна, по типу такого:
    spoiler
    <template>
    
      <div>
        <q-btn
          v-bind="$attrs"
          @click="show = true"
        ></q-btn>
    
        <q-dialog v-model="show">
              <p>
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Rerum repellendus sit voluptate voluptas eveniet porro. Rerum blanditiis perferendis totam, ea at omnis vel numquam exercitationem aut, natus minima, porro labore.
              </p>
              <q-btn
                label="OK"
                @click="show = false"
              />
        </q-dialog>
      </div>
    </template>
    
    <script>
    
    export default {
      inheritAttrs: false,
      data () {
        return {
          show: false
        }
      }
    }
    
    </script>

    Естественно, вместо q-dialog в данном случае может быть любой готовый компонент. А подход showModal('reg') ведет к лапше в коде
    В случае с v-for - лучше всего встраивать компонент в каждую строку, чем заниматься пробросом текущей строки в "общий" на список компонент.
    Ответ написан
    Комментировать
  • Как лучше написать во Vue?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Лучше в разных, а то в логике и темплейте запутаетесь.
    Сделайте иерархию примерно так:
    /articles/index.vue - просмотр списка статей
    /articles/create.vue - создать статью
    /articles/view.vue - смотреть статью
    /articles/edit.vue - редактировать статью


    И роуты:
    {path: '/articles', component: './articles/index.vue'}
    {path: '/articles/create', component: './articles/create.vue'}
    {path: '/articles/:id', component: './articles/view.vue'}
    {path: '/articles/:id/edit', component: './articles/edit.vue'}


    Это сугубо личное мнение и не претендует на звание единственно правильного
    Ответ написан
    Комментировать