Ответы пользователя по тегу PHP
  • Как вывести данные из массива PHP в тег и атрибут HTML?

    чуть рабочего г..кода
    $arr=[
                '/catalog/id1.svg Химия для бассейнов',
                '/catalog/id2.svg Бла бла бла',
            ];
            $data = [];
            foreach($arr as $link) {
                $split = explode(' ',$link);
                $path = array_shift($split);
                $name = implode(' ',$split);
                $data[] = [
                    'path'=>$path,
                    'name'=>$name
                ];  
            }
            print_r($data);

    на выходе массив из ссылки + название.
    далее в цикле выводите

    <?php foreach ($data as $link);?>
    <div class="_30CWHKH _3eXsdaG" str="2">
                  	    <div class="_1FmS6_e"><img alt="Фильтры для бассейнов" src="<?php echo $link['path']; ?>" /></div>
                  	    <a class="o0XE4_n" href="#">
                  	        <h2 class="_2PmikUJ" txt="2"><?php echo $link['name']; ?></h2>
                  	        <div data-dy="menu-item-tag"></div>
                  	    </a>
                  	</div>
    <? endforeach;?>
    Ответ написан
  • Как в php взять данные из кнопки javascript?

    Дополнить форму ...
    <form class="" onsubmit="submitForm(event)">
        <input type="text" name="status_yula" id="status_yula"> 
        <input type="text" name="status_avito" hidden id="status_avito">//  сделать скрытыми
        <button onclick="changeColor(event)" class="" id="avito"> Avito</button>
        <button onclick="changeColor(event)" class="" id="yula"> Youla</button>
    <button type="submit">Отправить форму</button>
    </form>


    JS
    let status = false;
    
      function changeColor(e) {
        status = !status
        let bgColor = status ? "green" : "red"
        let el = document.getElementById('status_'+e.target.id)
        el.value = status.toString()
        return e.target.style.backgroundColor = bgColor
      }
    function submitForm(e) {
      e.preventDefault(); // здесь обрабатывать значения в форме - просто добавляете к остальным значения по селекторам или как вы делаете.
     
    }


    Рабочий пример
    Ответ написан
    Комментировать
  • Рандомное число с 4.8 до 5.0?

    Вам же, наверное, диапазон определенный нужен?
    $ratingrandomvalue = rand(480, 500)/100;

    //4,80 - 5,00
    Ответ написан
    Комментировать
  • Как получить средний показатель из нескольких значений на php?

    $data=[$a,$b,$c];
    $average = round(array_sum($data)/count($data),3);

    Судя по всему и это Вам пригодится скоро
    Ответ написан
    Комментировать
  • Как округлить и подсчитать стоимость кв метра от общей суммы на php?

    $srpt = round(35000000/75, 3)
    проверка
    Ответ написан
    Комментировать
  • Почему функция возвращает 2020 год?

    Самый прикол в том, что у меня в старом проекте был встроен datepicker - еще древний jquery. И мне друг показал этот прикол... он вбивает 3 января прием врача - а ему на 2020 выкидывает. Я не поверил... все прощелкал, но правда. и сейчас на Вашем примере - вручную... 2021 появляется только 4 января.

    Если мне память не изменяет, то в 2022 такая ерунда касается только 1 и 2 января а 3го уже будет все ровно.
    return strftime('%A %d %T %B %G', mktime(22, 22, 0, 1, 4, 2021));
    Monday 04 22:22:00 January 2021

    а вот 3 января 2021 года
    return strftime('%A %d %T %B %G', mktime(22, 22, 0, 1, 3, <b>2021</b>));
    Sunday 03 22:22:00 January <b>2020</b>


    2 января 2022 года
    return strftime('%A %d %T %B %G', mktime(22, 22, 0, 1, 2,<b> 2022</b>));
    Sunday 02 22:22:00 January <b>2021</b>

    3 января 2022 года
    return strftime('%A %d %T %B %G', mktime(22, 22, 0, 1, 3, <b>2022</b>));
    Monday 03 22:22:00 January <b>2022</b>


    теперь я хоть понимаю откуда ноги растут у проблемы... было бы действительно интересно узнать. Потому что у многих это выстрелило и выстрелит в следующем году 1-2 января...
    Было бы очень интересно узнать почему такое
    Ответ написан
    Комментировать
  • PHP вернуть разницу во времени?

    В Carbon есть нужная Вам функция diffForHumans
    echo Carbon::now()->subDays(5)->diffForHumans();               // 5 days ago


    на чистом php форматы все равно руками задавать думаю необходимо.

    function dateDifference($date_1, $date_2, $differenceFormat = '%a days')
            {
                $datetime1 = date_create($date_1);
                $datetime2 = date_create($date_2);
                $interval = date_diff($datetime1, $datetime2);
                return $interval->format($differenceFormat);
            }
            $data = dateDifference('2020-12-01', '2020-12-03');

    2 days
    Ответ написан
    Комментировать
  • Как реализовать постоянное подключение к бд?

    Все зависит от того как Ваш php организован. Самописный? Фреймворк? А вообще Уже был подобный вопрос.
    Ответ написан
  • Как сделать несколько запросов в секунду на страницу сайта, чтобы сработал php?

    На свой сайт?) мне кажется можно js простой воткнуть -
    let timer = setInterval(() => window.location.reload(), 1000); //каждую секунду будет перегружаться
    setTimeout(() => { clearInterval(timer);  }, 60*60*1000); //на час

    а на чистом php я даже не представляю как это сделать.
    Ответ написан
  • Как вывести данные в PHPMailer?

    Потому что вы переменную перезаписываете каждый раз. Используйте .= если я верно понял задачу. $body .= ....
    Ответ написан
    8 комментариев
  • Кнопки Like / DisLike. При клике на Like, стили на ней появляются, все файлы POST 200, но +1 голос не отображается! Почему?

    Решили вопрос? мне кажется у вас в структуре jq кода нарушена последовательность. Я несколько уже подзабыл все нюансы, но
    ("#ratingDisLike").on('submit', function(e) {
    и
    $("#ratingsDislike").submit();
    это разве не одно и то же?
    а у вас одно в другом...

    вынесите сами функции выше обработчиков событий - так будет проще понять где что не так...
    п.с. вообще задача like/dislike проще несколько должна решаться) но это уже к делу не относится
    UPDATE.

    Фух... ну что сказать, чтобы не обидеть... надеюсь либо Вы учитесь, либо чей-то код разгребаете... потому что пусть я-не-гуру-но-что-то-умею пришлось повозиться. Как я и предполагал - код jquery неверный от и до.

    Я искренне не смотрел Ваши скриншоты, что и куда отправляется и в отличии от многих никогда никого не критикую, ибо сам могу легко ошибаться. Плюс я не сторонник теорий и прочей правильности - главное "штоб работало". Поэтому еще раз - могу быть в корне не прав, но оно работает. Итак, к делу.
    1) Код в форме
    <form action="" method="post" id="ratingsLike" onSubmit="ratingLike(1,2,3);return false;">

    я не уверен onSubmit или onsubmit (мне vscode показывает, что onsubmit корректнее). Далее прописываете функцию и параметры. Добавляете return false. Это вроде как preventDefault срабатывает.
    Итого - форма.
    <form id="ratingsLike" onsubmit="ratingLike(1,2,3);return false;">
            <button id="btnLike"><i id="thumbs-up" class="far fa-thumbs-up"></i></button>
        </form>

    2) Здесь я не уверен почему так (у меня проект на laravel и blade шаблонах), но onsubmit срабатывает корректно (без перезагрузки) когда функция находится вне document.ready.
    Скрипт.
    <script type="text/javascript">
         function ratingLike(id,type,target){
                        console.log('внутри функции ratingLike' ,id,type,target)
                            $.ajax({
                                method: "POST",
                                url: "/like-dislike", //здесь адрес к обработчику. в вопросе вы написали rating.php а в jquery отправляли на revealator.php/like_dislike.php - это вообще винегрет по-моему(
                                data: { id: id, type:type } // можно еще dataType добавить в зависимости от ответа. 
                                })
                                .done(function( data ) {
                                    $('#'+target).html(data.msg)  //вывод - мне приходит json поэтому через дату.
                            });
            }
         $(document).ready(function() {
            $('#btnLike').on('click',function(event){ //клик по кнопке. я убрал type=submit. Можно оставить и тогда этот блок вообще не нужен. Но так больше управляемости.
                event.preventDefault() 
                $('#ratingsLike').submit()
            })
        });
    
              </script>

    в общем не хочу конечно показаться грубым, но проще все или почти все удалить и заново выстроить цепочку. Очень все перемешано и замешано, только чтобы like/dislike сделать.
    Но если копаться дальше - ориентируйтесь на то, что я написал по поводу jq. Надеюсь не обидел
    Ответ написан
    7 комментариев
  • Как вывести многомерный массив по ключу?

    Если не заморачиваться с красотой подхода, то очень просто.
    foreach ($data2 as $key => $item) {
            foreach ($item as $key => $value) {
                if ($key == 'color' || $key == 'storage') {
                    print_r($value['value']);
                }
            }
        }
    Ответ написан
    Комментировать