Ответы пользователя по тегу HTML
  • Изменения в разметке Bitrix?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    самый верный способ - пройти курс битрикс контент менеджер.
    Там все ответы есть.
    Другой - неправильный. Самому найти комопонент в котором надо внести изменения. в компоненте найти шаблон. и в шаблоне в файле template.php внести изменения
    Ответ написан
    Комментировать
  • POST Запрос работает только после второго попытка и перезагрузка страницы?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    в зачем у вас одновременно
    await
    и
    .then()
    вы либо крестик снимите, либо трусы наденьте (С).
    вам все должно придти в
    const result=await fetch(reg, {....}
    Ответ написан
  • Как сделать звонок по клику из html письма?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    Добавить атрибут
    <a href="tel:79219999999" >Звонок</a>
    Ответ написан
  • Rich-контент на Битрикс, как это сделать?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    Это делается в шаблоне карточки товара. Если вы не знаете как кастомизировать шаблон в Битрикс, то без помощи программиста врядли удастся повторить.
    Вам надо кастомизировать
    local/templates/НАЗВАНИЕ _ВАШЕГО_ШАБЛОНА/components/bitrix/catalog/main/bitrix/catalog.element/ШАБЛОН_КАРТОЧКИ ТОВАРА/template.php
    Ответ написан
    Комментировать
  • Как подключить ресурс kladr-api к input через JS или PHP?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    js скрипт где происходит обработка ввода в input и вывод результата

    window.addEventListener('load', function (e) {  
    
      document.querySelectorAll('[name="street"]').forEach(function (el, indx) {
        el.addEventListener('input', async (e) => {    
    
          let street_name=el.value
    
    if(street_name.length>3){
      let data = {
        adress: street_name,
        task:'getKladr'
      }
      let url = '/controllers/ajax.php'
      let response = await fetch(url, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: 'data='+JSON.stringify(data)
      })
    
      let result = await response.json();
      let eladd_res=document.getElementById("address")
      eladd_res.innerHTML=""
      let json=JSON.parse(result)
    
      console.log(json)
    
      let html=""
    
      Object.entries(json.result).forEach(([key, value]) => {
        html+="<p>"+value["name"]+"</p>"
      })
    
      eladd_res.innerHTML=html
      console.log(json['result'])
    }
        })
      })
    })


    Скрипт /controllers/ajax.php - куда отправляется AJAX запрос

    require_once $_SERVER['DOCUMENT_ROOT']."/models/kladr.php";
    
    $res=GetInput();
    
    echo json_encode($res);
    
    function GetInput()
    {
                $data=getData();
                return call_user_func($data['task'],$data);
    }
    function getData() : array{
        $method=$_SERVER['REQUEST_METHOD'];
        $_vars=[];
        switch ($method){
            case 'GET':
                $_vars=requestGet();
                break;
            case 'POST':
                $_vars=requestPost();
                break;
        }
        return $_vars;
    }
     function requestGet() : array{
            return $_GET;
        }
        function requestPost() : array{
            return json_decode($_POST['data'],true);
        }
    
    function getKladr($data){
    
        $kladr= new Kladr();
    
        $res=$kladr->getStreet($data['adress']);
    
        return $res;
    }

    Сам класс Kladr /models/kladr.php откуда происходит вызов API и обработка ответа
    class Kladr
    {
        private $api_key;
    
        public function __construct()
        {
            //$this->api_key = KLADRAPIKEY; //не понадобился        
        }
    
        public function getStreet($street){
            $res=$this->request($street, "street", "2300000600000");
    
            return $res;
        }
    
        private function request($adress, $type, $cityid)
        {
            $res=[];
            $base_url = "https://kladr-api.ru/api.php?";
            $query_data = [
            //    'token'  => $this->api_key,
                'query'  => $adress,
                'contentType'   => !empty($type) ? $type : "street",
                'cityId' => !empty($cityid) ? $cityid : "2900000100000",
            ];
            $data_get = http_build_query($query_data);
            $url = $base_url.$data_get;
            //query=Ломоносова &contentType=street &cityId=2900000100000
           // $url="https://kladr-api.ru/api.php?query=Анапск&contentType=street&cityid=2900000100000&limit=5";
    
            $ch = curl_init();
            $defaults = [
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_URL => $url,
                CURLOPT_HTTPGET => true,
                CURLOPT_TIMEOUT => 10,
            ];
    
            $curl = curl_init();
            curl_setopt_array($curl, $defaults);
            $response = json_decode(curl_exec($curl), true);
    
            $curlErrorNumber = curl_errno($curl);
    
            if ($curlErrorNumber) {
                $res['error']['msg'] = 'Error curl';
                $res['error']['uri'] = $url;
                $res['error']['curl_n'] = $curlErrorNumber;
                curl_close($curl);
          
            } else {
                $res = curl_exec($curl);
                curl_close($curl);
            }
    
          
    
            return $res;
    
        }
    }


    Если ответ подошел. Поставьте пожалуйста отметку - ответ
    Ответ написан
    2 комментария
  • Как можно полностью подгрузить страницу из другой страницы?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    Вы пытаетесь забрать страницу вместе со всеми подключаемыми js ысриптаим в том числе и с подключаемыми удаленно - счетчики, jq и бог весть еще что.
    Заберите только тег body - а все что есть в теге head подключите у себя на странице заранее
    Ответ написан
    Комментировать
  • Как переходить между input'ами нажатием на кнопки стрелок?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    Пример

    var start = document.getElementById('start');
    start.focus();
    start.style.backgroundColor = 'green';
    start.style.color = 'white';

    function dotheneedful(sibling) {
    if (sibling != null) {
    start.focus();
    start.style.backgroundColor = '';
    start.style.color = '';
    sibling.focus();
    sibling.style.backgroundColor = 'green';
    sibling.style.color = 'white';
    start = sibling;
    }
    }

    document.onkeydown = checkKey;

    function checkKey(e) {
    e = e || window.event;
    if (e.keyCode == '38') {
    // up arrow
    var idx = start.cellIndex;
    var nextrow = start.parentElement.previousElementSibling;
    if (nextrow != null) {
    var sibling = nextrow.cells[idx];
    dotheneedful(sibling);
    }
    } else if (e.keyCode == '40') {
    // down arrow
    var idx = start.cellIndex;
    var nextrow = start.parentElement.nextElementSibling;
    if (nextrow != null) {
    var sibling = nextrow.cells[idx];
    dotheneedful(sibling);
    }
    } else if (e.keyCode == '37') {
    // left arrow
    var sibling = start.previousElementSibling;
    dotheneedful(sibling);
    } else if (e.keyCode == '39') {
    // right arrow
    var sibling = start.nextElementSibling;
    dotheneedful(sibling);
    }
    }
    Ответ написан
    Комментировать