Ответы пользователя по тегу JavaScript
  • Сортировка массива данных в группы/коллекции?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    без конкретной прикладной задачи вопрос сводится к "что лучше - помидоры или яблоки?". Каждое решение имеет степень целесообразности, например "чаще будет запрашиваться в формате А, чем в Б, значит храним формат А, при необходимости переформировываем в Б". Как реализовывать в каждом конкретном случае должен решать тот кто будет это использовать в коде, исходя из здравого смысла.
    Ответ написан
  • Какой алгоритм определения размеров у увеличения изображения по клику?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    используйте для контейнера min-height / min-width и max-height / max-width, он будет растягиваться в зависимости от картинки.
    Ответ написан
  • Можно ли как то ограничить количество ajax запросов или проверять состояние?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    то есть тыкать 14к раз в чекбокс вы считаете нормально для этой задачи? А как бэ, просто запустить скрипт в консоли который все это отконвертирует по порядку религия не позволяет?
    Ну или как вообще лучше поступить что бы не завис сервер, вдруг там гигабайтная картинка попадется...?
    проверяй те картинки на размер перед конвертацией, очень большие пропускайте, пишите в базу что пропущены(или в лог, как удобнее). Потом их отдельно обработать руками там, или скриптом под контролем. 14к - пусть 1 секунду будет обрабатываться 1 картинка, ~4 часа работы скрипта на дохлой машине, подозреваю на нормальном сервере займет от силы час.
    PS: представляю сколько времени тыкать чекбоксы надо будет ))
    Ответ написан
  • Как передать данные ссылкой?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    ajax, примеров в гугле просто завались
    Ответ написан
    Комментировать
  • Как преобразовать такой код в массив?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    самое очевидное - элементам кнопкам давать дата атрибут, содержащий ид или класс элемента отображения.
    тогда код примерно такой:
    HTML
    <button class="showbutton" data-elementid='element55'>покажи 55!</button>

    JQ
    $('.showbutton').on('click',function(){
        var id = $(this).data('elementid');
        $('#'+id).show(); // если по второму клику надо скрывать элемент - меняем шоу на тоггл.
    })


    UPD: на нативном не сильно отличается, смысл не хранить в массивах, а использовать собственные свойства элемента для хранения связей. Это гибко и правильно.
    native JS
    document.querySelector(".house-base-buy").addEventListener("click", function(event) { 
        var id = this.getAttribute('data-type');
        document.querySelector("#"+id).classList.add("show");
    })
    Ответ написан
  • Как удалить файл из числа прикрепленных?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Аякс спасет отца Русской демократии. Переносите все файлы из инпута в свой массив, в котором вы можете манипулировать данными, в отличие от file input, который readonly. Дальше FormData в помощь.
    Ответ написан
    Комментировать
  • При подгруздке AJAX-ом контент показывается на секунду и исчезает, как решить проблему?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    по AJAX запросу апендит некий контент с "photo.html".
    , ниже в коде:url: photo2.html",, что говорит о феноменальной внимательности ).
    далее(вернее ранее)<a class="link" href="">Work</a> как по вашему будет работать? )) Для тех кто не догадался - грузит контент по евенту, однако долг зовет его перейти по заданнй ссылке, а так как ссылка пустая, по стандарту считает что это линк на текущую страницу, весело топает по указанному адресу.
    Ответ написан
    Комментировать
  • Как скрывать блок после удаления без перезагрузки страницы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) $("#"+idBlock).hide();
    2)
    var idBlock = $(this).data('id_block'); alert(idBlock);
    и
    success: function(){ alert(idBlock); //пробую скрыть блок

    и тогда уже что-то пробовать, а в иделе еще и посмотреть на хтмл и проверить есть ли блок с таким id.
    Ответ написан
  • Чем вы пользуетесь для форм обратной связи если НЕТ CMS и PHP?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    не понятно, так нет пхп или
    Возможный вариант - условно бесплатная CRM
    это на чужом хосте??? То есть майл не безопасно, а юзать внешнюю орм - это пипец как безопасно.
    Если есть пхп - ну так принимайте форму, храните деньги в сберегательной кассе присланные отзывы в базе, или в файлах, показывайте по запросу. Уточните что надо и зачем - может поможет кто.
    PS: Если нельзя юзать мэйл - берите phpmailer - он с авторизацией smtp и прочими плюшками, это более секъюрно.
    Ответ написан
    1 комментарий
  • Как реализовать по клику открытие почтовика с учетом оставленной почты?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $server = explode ('@',$mail);
    $server = end($server);
    echo "<a href='$server' target='_blank'>go to hell!</a>";
    Ответ написан
    Комментировать
  • Нужен визуальный редактор для админки сайта с загрузкой картинок на свой сервер. Кто каким пользуется?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    tinyMCE, CKeditor, оба требуют отдельного файл менеджера, но умеют его использовать через плагин. KCfinder для CKeditor вроде бесплатный, есть какой-то за деньги, более навороченный. Можно и вот такой использовать, весьма удобный.
    Ответ написан
    Комментировать
  • Как используя js/jq загрузить в input file файлы не за 1 раз, а за несколько?

    ThunderCat
    @ThunderCat Автор вопроса, куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Итак, вариант решения который в итоге подошел по таким параметрам:
    1) Файлы можно загружать в несколько этапов, то есть добавил, удалил, еще добавил и тд.
    2) Превью файлов хранится в браузере, никакой загрузки до субмита основной формы на сервер не происходит, дабы предотвратить мертвые загрузки - когда люди закрывают форму недозаполнив, но подгрузив файлы.
    3) Файлы грузятся на сервер по субмиту формы с кучей полей и линкуются с объектом.

    Реализация:
    1) так как все писать руками было лень было дернуто с гитхаба половинчатое решение, и "после сборки обработано напильником" (кому интересно - пишите - положу куда-то или форкну ветку). Что умеет сие творение "из коробки": подгружать файлики картинок и делать превью с кнопкой удаления. Все файлы пишутся в отдельный массив, который в конце по нажатию кнопки(опционально сразу при подгрузке с винта) аяксом отправляет на сервер файлы, генерировать кастомный евент по завершении загрузки. Что-то еще, но прочие фишки не понадобились.
    2) В результате обточки было добавлено несколько свойств - максимальное количество файлов, максимальный размер файла, максимальный размер всего набора и токен. Теперь оно умеет ругаться на превышения лимитов и отправлять не только файлы, добавленные в массив, но и ключ-токен.
    3) На основную форму был повешен листенер онсубмит, который проверял переменную filesSended, по умолчанию установленную в false, и при фалс делал превентдефаулт форме, аяксом слал файлы и токен на серв, по завершении загрузки срабатывал листенер на евент загрузки, который выставлял filesSended в тру, и снова субмитил основную форму, уже без превентдефаулт. Все выглядит как простая отправка формы с перезагрузкой.
    4) На сервере файлы принимаются, в базу пишем пути и токен, после чего срабатывает обработчик формы и на сервер приходят остальные данные и дубль токена из хидден инпута. Из них строится объект, айдишник и токен передается в объект картинки, методу ->relinkImages($id,$token); Метод тащит все картинки с заданным токеном, меняет поле связи на нужный айди, обнуляет токен и сохраняет запись. Все!
    5) В качестве паранойи в сессию пишутся все токены выданные пользователю и при загрузке картинок и данных наличие пришедшего постом токена проверяется в сессии.

    Отдельное спасибо Stalker_RED и Сергей delphinpro за умные мысли, советы и отличное знание темы, сам в жс "плаваю".

    сори что поздно, форк аплоадера, если кому надо, пилить придется под себя.
    Ответ написан
  • Как через форму загрузить изображение, налету закодированное в Base64?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    смотрите в сторону файлового апи в жс - FileReader(), вам подойдет readAsDataURL(). Как вариант на инпут файл вешается ончейндж, и из файллиста все пихается в валуе какого-то хидден инпута. Все, на стороне сервера готовый бэйз64 стринг.
    Ответ написан
  • Чем отличается ajax-запрос post от get?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    смотрите логи, 500 ошибка обычно выводится когда вывод ошибок перенаправлен в лог и возник фатал ерор. Или задайте для выполнения скрипта ерор репортинг е_алл, и дисплэй еррорс 1.
    Ответ написан
    Комментировать
  • Как закрыть pop up автоматически через n секунд?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    $("#success-message").hidefadeOut(2000);
    Ответ написан
  • Как спрятать все элементы с определённым классом?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) Hidde???
    2) зачем такие мучения? дайте кнопке id="hideButton", уберите инлайн onclick="a()" - это плохой стиль, подключите JQ и:
    $('#hideButton').on('click', function(){
        $('.name').hide();
    })
    Ответ написан
    2 комментария
  • AJAX не работает. В чем причина?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    -1) кто такой input type="login"???? text знаю, password знаю, login шо за зверь?
    0) проверить, подключен ли JQ
    1) биндить евент по загрузке, и правильнее использовать on, то есть:
    $(document).ready(function () {
        $('#login_r').on('keyup', function(){
            console.log('пошел процесс!');
            ...
            console.log(msg);
        })
    }

    2) Использовать console.log(), сначала в самом начале функции обработчика жс, чтобы убедиться что бинд вообще работает, далее, если все работает, выводить ключевые переменные на точках ветвления/изменения параметров. В конце вывести что пришло аяксом.
    3) как и советовали, для начала и для отладки, уберите все и оставьте только вывод.
    4) mysql_* функции являются устаревшими, используйте PDO(рекомендуется) или mysqli_*.

    UPD:
    Теперь выводит alert('error');. То есть пропускает весь цикл до последнего else.

    Для начала замените алерт на вывод в консоль, далее - выводите не бесполезный error, а данные которые пришли, нахрена вам этот еггор? По уму, оперировать надо цифрой а не буквой, то есть отдавать 0 или 1.
    Ответ написан
  • Как перестроить код чтобы срабатывал скрипт?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    вынесите свою магию в отдельный класс, вместо
    .gchoice_{$id} li:nth-child(n+5) {  display: none; }
    поставьте класс заглушку какую-то, типа .htoggle li:nth-child(n+5) { display: none; } и по клику делайте тогглкласс, соответственно по старту будет <li class="gchoice_2_3_1 htoggle">
    Ответ написан
    1 комментарий
  • Передать значение из js/html в php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Это вы как то неподумавши спросили. Если вы аяксом запросили данные с сервера, получили их, обработали и хотите еще что-то получить от сервера на основе обработки жсом, то какая проблема еще раз сделать аякс запрос с уже полученными из жс данными?
    Ответ написан
  • Как добавить активный класс на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    вроде это на жс, не на пхп... и вообще бутстрап вроде готовый, просто вы его готовить не умеете.
    Читайте поваренную книгу
    Ответ написан