• Как упростить код?

    @stavfz
    let test=( (условие1 && условие2) || условие3) ? true :  false

    Если соблюдены условия 1 и 2 или условие 3 то test будет true иначе будет false
    ну или так если прям IF нужнго отработать

    if ( (условие1 && условие2) || условие3 )
    {
        console.log('ТРУ')
    }
    Ответ написан
  • Как отработать форму при нажатии на Enter?

    @stavfz
    Отправил тебе pull request исправил три строчки
    в app.js
    217 и 224
    217 const sendMessage = document.querySelector(".chat__input"); //так будем отслеживать события всей формы а не только кнопки
    224 sendMessage.addEventListener("submit", (function(e) { // Обрабатываем события формы submit оно наступает в частности при нажатии на enter если курсор стоит в одном из  input-ов формы


    и в фалйе index.html
    Меняем тип кнопки на submit чтобы при нажатии на неё генерировалось событие отправки которое обработается в app как и раньше обрабатывался клик по этой кнопке
    39 <button type="submit" class="send-message"><img class="send-icon" src="img/send.svg" alt="icon send message"></button>

    app.min.js тоже перегенирировал с учетом внесённых изменений.
    Ответ написан
    2 комментария
  • Как сменить формат большому количеству файлов?

    @stavfz
    Открываем командную строку например написав в поиске меню пуск cmd
    переходим в нужную нам директорию с помощью команды
    cd C:\НАША_ПАПКА
    Нажимаем Enter
    если вы уверенны что находитесь там где нужно вводим следующую колманду
    rename *.bin *.exe
    ну и как бы всё
    Ответ написан
    1 комментарий
  • Почему на хостинге не срабатывает условие if?

    @stavfz
    А можно увидеть ту часть кода где вы получаете this.locations.volume
    Ответ написан
  • Почему яндекс карта открывается в нужных координатах только со второго раза?

    @stavfz Автор вопроса
    Отвечаю сам себе :) Возможно это не единственное решение но если установить таймаут на изменение координат то всё работает нормально
    меняем это:
    updateCords(ctx, coords) {
    
                ctx.commit('newCords', coords)
            },

    на это:
    updateCords(ctx, coords) {
                setTimeout(() => {
                    ctx.commit('newCords', coords)
                }, 500)
    
            },

    и всё работает как ожидается но немного странно выглядит такое решение.
    Ответ написан
    Комментировать
  • Как перед отправкой формы подменять значение?

    @stavfz
    Не пойму в чем вопрос у вас вполне рабочий код jQuery
    Единственное если у вас несколько инпутов то он конечно не отработает так как вы ждете. так как вы пытаетесь манипулировать не отдельным элементом
    $('#input')
    а всеми элементами input
    $('input')

    Вот для примера рабочий вариант на основе вашего кода. Если нужны пояснения пишите поясню.
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    
    <body>
        <form action="#" method="post" id="Myform">
            <input type="text" name="only_num" id="Myinput" required>
            <input type="submit" value="Submit" id="submit">
        </form>
    </body>
    <script>
        $('#Myform').on('submit', function(e) {
            e.preventDefault();
            let input = $('#Myinput');
            let currentValue = input.val();
            let convertValue = currentValue.replace(/\D/g, '')
            input.val(convertValue);
        })
    </script>
    
    </html>
    Ответ написан
    Комментировать
  • Как это превратить в один запрос?

    @stavfz
    Скажите а "select * from Products where product_id=$p_id and region=$key" Может вернуть больше одной записи за один проход?
    Не пойму просто логическую суть условия if ($smth->num_rows!=0)
    если задача найти именно дублирующиеся записи то по идеи должно быть if ($smth->num_rows>1) т.к. 1 строка это не дубликат. Получается что в Select как таковом отпадает всякая нужна просто update и всё (есть что обновить обновит нету нет) и если в самой таблице настроить уникальность по двум полям то можно следом и insert делать, он все равно не задвоит данные.

    по вашему примеру получается что update можно делать и если больше одной записи в базе соответсвует выборке ваше условие !=0 предполагает что нужно обновить все записи которые соответсвуют выборке сколько бы их в базе не было
    Есть ещё такая штука как replace, работает также как инсерт если в базе найдется запись которая совпадет по значению первичных ключей (если product_id и region у вас являются таковыми) со вставляемой строкой то произойдет Update
    Опять возвращаемся к тому что сложно посоветовать что то конкретное не видя структуру таблицы её ключей и индексов
    Вполне вероятно что в вашем случае просто вместо конструкций из if можно написать:
    $sql = "REPLACE INTO Products (product_id, region, prices_purchase, prices_selling, prices_discount)
            VALUES ('$p_id', '$key', '$p_purchase', '$p_selling', '$p_discount')";


    p.s.
    то что пишу ниже это офтоп но не совсем, вы спрашивали "Можете посоветовать что можно изменить в коде"
    Могу.
    Строить запросы так как это делаете Вы неправильно с точки зрения безопасности, правильно было бы сделать так:
    для INSERT
    $sql = "INSERT INTO Products
    SET
    product_id= :product_id, 
    region= :region, 
    prices_purchase= :prices_purchase, 
    prices_selling= :prices_selling, 
    prices_discount= :prices_discount
    ";
    // подготовка запроса
    $stmt = $this->bd_connect->prepare($sql);
    
    // привязываем значения
    $stmt->bindParam(':product_id',$p_id);
    $stmt->bindParam(':region',$key);
    $stmt->bindParam(':prices_purchase',$p_purchase);
    $stmt->bindParam(':prices_selling',$p_selling);
    $stmt->bindParam(':prices_discount',$p_discount);
    
    //Выполняем запрос
    $stmt->execute()


    Для SELECT
    $sql = "SELECT * FROM Products 
    WHERE product_id= :p_id AND region= :key";
    
    // подготовка запроса
    $stmt = $this->bd_connect->prepare($sql);
    
    // привязываем значения
    $stmt->bindParam(':p_id',$p_id);
    $stmt->bindParam(':key',$key);
    
    // выполняем запрос
    $stmt->execute();
     
     // получаем количество строк
    $num = $stmt->rowCount();
    
    // одним из распространенных вариантов получаем значения (смотри php PDO)
    $row = $stmt->fetch(PDO::FETCH_ASSOC);


    Перед привязкой значений можно а часто даже нужно дополнительно обработать ( слеши там всякие и т.п. :) ), то, что собираешься биндить
    Ответ написан
    5 комментариев