• Как получить json значение по ключу?

    alekseyHunter
    @alekseyHunter
    Android developer
    В $_POST содержится ассоциативный массив, доступный по ключу. Вы отправили объект json - он содержится теперь в этом массиве, каждому ключу из объекта соответствует аналогичный ключ в $_POST.
    Обращайтесь так:
    $param = $_POST["param"];

    А чтобы декодировать json, нужно скормить строку с ним. А вы декодируете массив $_POST.

    $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';  //вот это может декодировать функция
    
    $data_json = json_encode($_POST); 
    json_decode($data_json);
    Ответ написан
    8 комментариев
  • Как передать сайт на Wordpress с open server заказчику?

    @Lord_Dantes
    Не мучайте заказчика поставьте его на какой-нить тестовый хостинг и дайте доступы к админке.
    Он уж тем более не поставит его без вашей помощи.

    Но если нужно передать то экспорт БД и архив всех файлов ВП и кидаете ему.
    Ответ написан
    5 комментариев
  • Как на php вернуть конкретную ошибку при оправке формы Ajax?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Рекомендую присмотреться к методологии JSend: https://github.com/omniti-labs/jsend
    А вообще, посмотрите, как сделаны API у других. Особенно рекомендую API Telegram ботов как эталон формирования ответов.
    Ответ написан
    1 комментарий
  • Как на php вернуть конкретную ошибку при оправке формы Ajax?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Код может выглядеть вот так:
    $("#form").submit(function(e) {
            e.preventDefault();
                $.ajax({
                    dataType: 'json', //Тип данных, в котором ожидается получить ответ от сервера.
                    type: "POST",
                    url: "send.php",
                    data: $(this).serialize()
                }).done(function(response) { // В response находится ответ от сервера который отправлен через echo из send.php
                    if(!response.status) {
                        alert("Что-то не так");
                    }
                    else {
                        alert("Всё ок!");
                    }
                }).fail(function () {
                    
                });
                return false;
            });

    // Если такой логин есть, значит ошибка
    if ( R::count('users', "login = ?", array($_POST['login'])) > 0) {
    	$response = [
    		'messages_error' => 'Пользователь с таким Логином уже существует!',
    		'status' => false,
    	];
    	echo json_encode($response); // Отправляем json ответ от сервера
    } 
    else {
    	// Если логин уникальный - регистрируем юзера
    	$user = R::dispense('users');
    	$user->login = $_POST['login'];
    	$user->password = $_POST['password'];
    	R::store($user);
    }


    И кстати как инструмент для просмотра запросов к серверу и ответов от сервера, можно использовать вкладку Network в DevTools браузер Google Chrome, ну и в других браузерах тоже есть такая вкладка
    5d4740daa6684529130203.png
    Ответ написан
  • Как сделать, чтобы модалка появилась через 5 секунд непосредственного нахождения на странице,даже если до этого она была открыта в неактивной вкладке?

    rockon404
    @rockon404
    Frontend Developer
    Вам надо использовать window.onfocus и window.onblur.
    По onfocus заводить таймаут. По onblur чистить.
    let timeout = null;
    
    const handleClearTimeout = () => {
      clearTimeout(timeout);
    };
    
    const handleSetTimeout = () => {
      timeout = setTimeout(() => {
        showModal();
        window.removeEventListener('focus', handleSetTimeout);
        window.removeEventListener('blur', handleClearTimeout);
      }, 5000);
    };
    
    window.addEventListener('focus', handleSetTimeout);
    window.addEventListener('blur', handleClearTimeout);
    
    if (document.hasFocus()) {
      handleSetTimeout();
    }
    Ответ написан
    1 комментарий
  • Правильное скругление углов у кнопок,обьектов?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Привязываться к числам не нужно. Нужны мягкие закругления - ставьте Corner Radius больше . Нужны острые углы - меньше. Нет неправильного радиуса. Пример:

    5d05424245497153237334.png

    Еще одна причина, почему не нужно привязываться к цифрам - неизвестный размер кнопки. На скриншоте высота 80px и закругление 20, но для высоты 500px закругление в 20px будет выглядеть совсем по другому. Приведу пример, размер шрифта оставлю без изменений:

    5d05431be3d44083282864.png
    Ответ написан
    2 комментария
  • Как залить на github-pages несколько сайтов?

    edalis
    @edalis
    HTML, CSS, JS, Node.js
    Используйте папки-поддиректории:
    nickname.github.io - корневая директория сайта (главная страница)
    nickname.github.io/site 1/ - поддиректория 1 (папка сайта 1)
    nickname.github.io/site 2/ - поддиректория 2 (папка сайта 2)
    nickname.github.io/site 3/ - поддиректория 3 (папка сайта 3)

    Оригинал
    Ответ написан
    1 комментарий
  • PHP кто то писал модуль интеграции со СДЭК?

    alexkbs
    @alexkbs
    Попробуйте такую библиотеку: https://github.com/sanmai/cdek-sdk

    Устанавливается очень просто:

    composer require sanmai/cdek-sdk

    Документация. Там же есть примеры. Есть телеграм-канал для поддержки.
    Ответ написан
    9 комментариев
  • Как установить composer и как им пользоваться под windows?

    K-2
    @K-2 Автор вопроса
    Постараюсь подвести первые итоги.

    Composer можно пользоваться в 2х вариантах.
    Глобально(установив программу) и Локально(ничего не устонавливая)
    И тот и тот способы работают только из командной строки. (Пуск->Стандартные->Командная строка)
    Для того чтобы что-то скопировать в командную строку ctrl+v не работает! Пользуемся правой кнопкой мышки->вставить

    ЛОКАЛЬНО пошагово
    1. Создаем папку, в которой будет проект на компьютере.
    2. В Командной строке пишем команду cd и путь к папке с проектом:
    cd C:\xampp\htdocs\test_composer
    3. Т.к. программа не установлена, нужен загрузочный файл(мини-программа composer), для его загрузки в Командной строке пишем команду:
    php -r "readfile('https://getcomposer.org/installer');" | php
    теперь в директории появился загрузочный файл
    4. Запускаем команду загрузки фреймворка(у каждого свой), в Командной строке пишем:
    php composer.phar require silex/silex ~1.1 (для фреймворка silex)

    В Командной строке, команды запускаются по разному при локальной и глобальной загрузках:
    Локально: php composer.phar require silex/silex ~1.1
    Глобально: composer require silex/silex ~1.1
    php composer.phar меняется на composer
    Еще при локальной загрузке нужно каждый раз закачивать установочный файл(это не сложно и описано в шаге 3):php -r "readfile('https://getcomposer.org/installer');" | php
    При глобальной загрузке этот файл не нужен.

    ГЛОБАЛЬНО пошагово
    1. Скачиваем программу composer https://getcomposer.org/Composer-Setup.exe
    2. Запускаем. При запросе файла php указываем путь к локальному хостингу -> папку php
    3. Теперь делаем все тоже самое что и при локальной загрузке, но пропускаем шаг 3, и изменяем запросы из Командной строки(вместо php composer.phar пишем composer). Пример:
    было так: php composer.phar require silex/silex ~1.1
    стало так: composer require silex/silex ~1.1

    О других отличиях между глобальной и локальной загрузками пока-что тут ничего не ответили!
    Ответ написан
    1 комментарий
  • Как отдельно вызвать функцию $(document).on('input', '.class', function EVENT() {?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Лучше опишите ее заранее
    function EVENT() { 
    ......
    }
    $(document).on('input', '.class', EVENT);
    
    $(document).on('click', '.class', function() { EVENT(); }); 
    // или просто 
    $(document).on('click', '.class', EVENT);
    Ответ написан
    3 комментария
  • Почему тут true?

    Minifets
    @Minifets
    Hello world!!!
    Потому что null преобразуется к 0, при сравнении.
    Ответ написан
    Комментировать
  • Почему Javascript включен в тор браузере?

    Stalker_RED
    @Stalker_RED
    Вы путаете tor и tor browser или tor bundle, или что там у вас.
    Cам по себе tor никакого дела с js не имеет.

    upd если речь о этом tor browser'е, то у них в FAQ это есть.
    JS по умолчанию включен, но при этом применены довольно жесткие настройки NoScript'а, и другие приемы.
    Ответ написан
    3 комментария
  • Почему при первом клонировании Input сумма значений получается NaN?

    Stalker_RED
    @Stalker_RED
    В том месте, где перебор всех полей через each, вы делаете parseInt даже на те инпуты, где пусто.
    Там не ноль, а вообще пустая строка.
    gbpA7dx.png
    Ответ написан
    1 комментарий
  • Откуда WEB SEO студии берут клиентов?

    mosesfender
    @mosesfender
    Меланхолик, параноик, падал с коек
    Редкий SEO-шник тот кем представляется. Работа эта сложная и требует много времени и сил. По моему опыту 98% представляющихся SEO-шниками - обычные бездельники и мошенники, обещающие золотые горы, и за большие деньги делающие в лучшем случае то, что я и сам умею.
    Ответ написан
    8 комментариев
  • Почему не работает скрытие диалога?

    RAX7
    @RAX7
    Опечатка onlick -> onclick
    ... ну или попробуй лизнуть кнопку
    Ответ написан
    2 комментария
  • Почему при первом клонировании Input сумма значений получается NaN?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Потому что parseInt('') будет NaN.

    При суммировании подставляйте 0 вместо пустых строк, замените parseInt($(this).val()) на parseInt($(this).val()) || 0.
    Ответ написан
    2 комментария
  • Как логически организовать отправку формы-калькулятора?

    Immortal_pony
    @Immortal_pony Куратор тега PHP
    1) Как отправлять цену каждой строки заказа, если она в теге p ? Рядом ставить скрытый input и делать связь?

    Записывать цену в input type='hidden'

    2) Как отправлять выбранный выпадающий div? Рядом ставить скрытый input и делать связь?

    Да. Для справки: bootstrap-select или select2 это сделают за вас сами.

    3) Как правильно организовать отправку такой динамической формы?

    Форму завернуть в тэг form. При событии "submit" само событие выполнить не давать, а проводить сбор данных, валидацию и отправку на сервер через AJAX
    Ответ написан
    2 комментария
  • Как успеть за всеми технологиями

    @lesha_penguin
    Насчет «новых технологий» дам несколько хороших советов (как человек, который уже многое успел повидать на своем веку).

    Первое: Самый простой способ везде успеть — это никуда не спешить, а двигаться к своей обозначенной цели, не позволяя сбивать себя с пути.

    Второе: Позволь, дам тебе несколько нестандартный взгляд на «новые технологии».

    Попробуй, оглядись вокруг. Как грибы после дождя, из всех щелей валят «новые технологии». Что стоит за этим и чем грозит тебе лично?

    Сразу видно, хитрые фирмы изобретут еще 100500 разных технологий, языков, фреймворков, парадигм и каждую из них они будут рекламировать как новую и революционную, готовую перевернуть мир (хотя я авторитетно скажу, что по крайней мере за последние 20 лет чего-то действительно принципиально нового придумано было чрезвычайно мало. компутеры стали меньше а программы больше. и все).
    При этом каждую технологию подают исключительно как «серебрянную пулю», способную решить все текущие и будущие проблемы. А еще реклама давит на «чувство моды», выставляя всех кто не гонится за модой старомодными пердунами. И конечно, любая реклама тебе пытается внушить, что эта новая технология вот-вот вытеснит все остальные, и вам надо срочно все бросать и изучать пока не поздно чтобы не оказаться за бортом… да и вообще, есть еще over 9000 рекламных приемов.
    Так вот — не верь рекламе — не забывай, реклама все врет. У любой технологии есть свои плюсы и минусы. Плюсы, даже весьма сомнительные, рекламно выставляются напоказ, а минусы, даже самые очевидные, тчательно маскируются и отрицаются.

    Цель любой этой всей рекламы — чтобы такие как ты покупались на эту рекламу и сломя голову бежали «изучать новые технологии» (тратя на это свои силы, время и деньги). И самое главное, чтобы тащили когда нужно и даже когда совсем ненужно «продукты этих новых технологий» в свои проекты. А когда минусы станут очевидными, все обнаружат, что на технологию уже «подсели как на иглу» и просто так ее выпилить из проектов затруднительно. Знакомо?

    Отсюда постулат первый. Как ты только начал изучение чего-то или еще хуже потащил какую-то технологию в свой проект, ты уже подарил кому-то часть своей жизни (а жизнь она короткая, и это очень ценный ресурс). А также подарил кому-то часть своих денег, часть своего внимания, оторвав возможно от чего-то более ценного.

    Так вот, первый вопрос который ты должен себе задать: Твое время, силы и внимание, безвозвратные годы твоей жизни — оно что ничего не стоит, чтобы им так разбрасываться и просто дарить их кому-попало направо и налево? Наверное уж если вкладывать свое время так во что-то реально ценное! А вот что для тебя ценное — решать должен ты сам не позволяя никому в это влезать!

    При этом, обрати внимание, я вовсе не призываю, «запереться в бункере», отгородившись от внешнего мира глухой стеной. Как раз наоборот, надо быть в курсе того, что происходит вокруг. Но при этом не обязательно в каждую «новую хрень» углублятся, тратя на нее свои ценные молодые годы.
    Зачастую о «новых технологиях» достаточно знать только пять вещей:
    * знать что такая технология существует
    * примерно представлять для чего она
    * знать сильные и слабые стороны (т.е. читать больше практические отзывы, особенно внимательно читая негативные, чтобы не всю информацию брать из рекламы)
    * сравнительный анализ (обращаем внимание на негатив больше чем на рекламу)
    * знать примерно что и где гуглить если вдруг будет принято решение узнать о ней побольше.

    И все! Этого будет достаточно. Ты двигаешся к цели, и не даешь себя сбить с цели. И если вдруг ты видишь что какую-то технологию ты можешь применить применительно к своей цели (если оно оправдано и ты видишь что оно оправдано).

    Заметь, применить не потому что «это модно», а потому что это отвечает твоим целям и задачам и ты хорошо взвесил, что трудозатраты окупятся! (Кстати, никогда не применяй что-то только потому что это «модно». Мода она ни к чему хорошему не приводит, она только порождает «жертвы моды».)

    Помни главное: Изучая какую-то «новую технологию» ты тратишь свое время, силы, средства, внимание на продвижение этой технологии. Причем, сам, побывав в роли «пушечного мяса», от этой технологии ты скорее всего «получишь кукиш с маком», зато невозбранно сделав миллионные капиталы фирме-создателю этой технологии. Оно тебе надо? Подумай, дает или способна дать тебе эта «новая технология» хоть что-то ради чего, ты будешь ухлопывать ценные годы своей жизни на ее продвижение? Окупится ли? Вообще взаимовыгодное ли это сотрудничество для тебя?

    P.S.: Кстати, если вообще не знаешь что учить — учи матчасть, учи основы, тренируй мышление, развивай мозг. Это всегда пригодится. Зная матчасть любую «новую технологию» ты запросто освоишь как только ты для себя решишь, что она тебе нужна.

    P.P.S.: Короче, если по-простому, не будь хомячком, которого все стремятся сьесть на обед (т.е. не работай на продвижение ненужных тебе лично технологий).
    Будь матерым волчарой, который сам сожрет кого угодно (пусть технологии работают на тебя, и любое взаимодействие с «новой технологией» для тебя сто раз просчитанное взаимовыгодное сотрудничество, только так).
    Ответ написан
    4 комментария