Ответы пользователя по тегу JavaScript
  • Что происходит когда нажимаешь на кнопку input type=submit?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Как я понимаю: создается POST AJAX-запрос к указанному адресу.
    Нет, происходит субмит формы, никакого аякс запроса по умолчанию не создается, обычный запрос, пост или гет зависит от метода указанного в форме.

    Но после получения ответа от сервера (в моем случае status=200) браузер переходит на адрес запроса в показывает ответ запроса в html.
    Так и должно быть, браузер отсылает форму и переходит по урл отсылки чтобы получить ответ.

    Как это обработать, как сделать так, чтобы браузер никуда не переходил и не показывал пользователю ответ?
    Гуглите "отправка формы ajax" - миллион статей.
    Ответ написан
    Комментировать
  • Что прописать нужно чтобы файл html автоматически чистилcя в кэше браузера и показывал последние изменения?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    клиент как только обновит страницу, у него больше не показывалась старая информация, а показывалась новая.

    Неправильный ответ - прописать заголовки кеширования на короткое время, магия, чистка кэша и вот это все

    Правильный ответ - не использовать файлы с одинаковыми именами для динамически меняющегося контента.
    Поясню: файлы js, css, изображения и прочие элементы дизайна и функционала должны кешироваться, они не являются динамической информацией и не должны часто меняться. Отключать кеширование для них - глупо и чаще всего бесполезно(вы же не храните прайс в js файле надеюсь?). Информация же динамическая (в вашем случае прайс) либо в виде текста лежит(что вообще не кешируется по умолчанию), либо лежит у вас в виде файла типа price.xls. И вот во втором случае уже будут проблемы. И тут есть 2 нормальных решения: первое - делать уникальные имена для прайсов(например добавлять дату изменения, что логично и удобно как вам так и клиенту), либо после ссылки на файл добавлять уникальный гет параметр, в итоге ссылка файла будет выглядеть как price.xls?date=220519. Тоже приемлемый вариант, но уникальное имя лучше/удобнее.
    Ответ написан
  • Как сделать возможность вписать в форму произвольное число?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Очевидно добавить евент ончейндж(можно онкейап, но тогда будет пересчитываться на каждом символе) на все поля куда надо вводить руками, и по евенту пересчитывать что у вас там суммируется, код примерно такой же как на кнопках + и -.
    Ответ написан
    2 комментария
  • Как передать через выбор option select несколько значений?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    есть 2 варианта:
    1) передавать в ваш инпут строку типа "название_ид_тип" и на сервере обратно разбить и обработать. Решение так себе, например есть косяк с тем что имя вполне может содержать "_", но позволяет вам не сильно менять логику.
    2) выводить выпадающий список не селектом, а нормальным списком(див или ул), в дата атрибуты которого прописать соответствующие данные(имя, ид, тип), по клику в 3 поля формы разносить эти данные и получить нормальную форму.
    Ответ написан
    Комментировать
  • Как сохранить данные на клиенте после перезагрузки страницы?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Пытаюсь через localstorage, но после перезагрузки всё пропадает,
    код в студию, магии не бывает, а телепаты в отпусках

    единственное что работает, хранение на сервере, но если я буду хранить там,то эти данные раздадутся на всех,
    Сессии для этого есть, тогда можно хранить на сервере "не для всех".
    Ответ написан
  • Эквивалентно ли if (условие) условию if (условие === true) и аналогично с if (!условие) условию if (условие !==)?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    самое очевидное: if(1) != if(1===true) как минимум, просто посмотрите что в екмаскрипт удовлетворяет выполнению ифа.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы по нажатию на кнопку в form отрабатывала JS-функция, а сама форма игнорировала отправку?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    action="javascript:void(0);" onsubmit="call()" это дичь редкая, есть же листенеры событий, я не ас в чистом js, но на jq нужно что то такое
    $(function(){ // по загрузке всего документа выполнить
      $('#request').on('submit', function(e){ // вешаем листенер на форму, по срабатыванию запускаем код
         e.preventDefault(); // останавливаем отправку формы
         some code // делаем что-то
      })
    })


    UPD: Ниже подтянулись мэтры и выдали более чистые решения на ванилла жс.
    Ответ написан
    Комментировать
  • Как на js определить время выполнения ajax-запроса?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    При ставрте аякс запроса
    1) выставить флаг процесса отправки
    2) Запустить таймер на эн секунд который проверит флаговую переменную и выведет в консоль сообщение в случае если она установлена(и сбросит ее)
    3) По завершении аякса в суксесс/доне сбросить флаг.
    4) Profit
    Ответ написан
    2 комментария
  • Как убрать checkbox-2шт.?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    document.getElementById('start').onclick = function (){
    if (document.getElementById('start').checked == true){
    document.getElementById('finish').checked = true;}
    else {document.getElementById('finish').checked = false;}
    }
    Ответ написан
    Комментировать
  • Как отследить ошибку отправки формы ajax?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Открываем консоль браузера, идем во вкладку нетворк, включаем кнопочку XHR, делаем запрос.
    Смотрим:
    1) куда ушел запрос(неплохо бы открыть из браузера, а в коде на сервере вывести какой-то проверочный стринг),
    2) Что вернул сервер(кликаем на запрос в списке нетворк вызовов и смотрим ответ сервера)
    В идеале сервер вернет JSON строку с объектом, в котором уже будут все нужные поля, но в вашем случае явно что-то не так.
    Соответственно проверяйте - уходит ли запрос, туда ли уходит и что возвращает сервер.

    Забыл написать - ошибки яваскрипта в консоли проверьте в первую очередь.
    Ответ написан
    Комментировать
  • Почему не отрабатывает ajax?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    просто загружается пустая страница с dost.php.
    что не удивительно, форма просто субмитится, никакой аякс у вас просто не успевает обработаться, как это предотвратить я вообще то с комментариями расписал в вашем прошлом вопросе.
    как проверять что происходит:
    для яваскрипта есть 2 варианта:
    a) нубский вариант - alert('some string'); в принципе позволяет понять что и куда пришло в ходе выполнения скрипта
    б) тру подход - console.log(some_var); - выводит в консоль браузера подробную информацию о переменной
    Далее - в целом инструменты разработчика в хроме(F12) или например фаерфоксе, которые отслеживают много чего, их вы должны знать хотя бы в общих чертах, почитайте как работать с ними, материала масса.
    Теперь - что и куда(и как) отправляется:
    Вкладка нетворк в инструментах разработчика показывает все запросы по сети(включая закэшированные), их можно отфильтровать по типам, что очень удобно для отслеживания например именно аякс запросов. В составе каждого запрошенного элемента в частности есть метод, урл, данные и ответ сервера. По нему можно смотреть что отвечал сервер в ответ на аякс, не нужно никаких файлов и прочей хрени, просто смотрим ответ сервера.
    На стороне пхп - ПЕРВЫМ ДЕЛОМ если мы отсылаем какие-то данные мы проверяем в каком виде они пришли, то есть первой строчкой при отладке делаем var_dump($_POST); exit; и смотрим что пришло к серверу.
    Ответ написан
  • Как пробросить UTM метки внутри сайта?

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

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) вообще то это должно быть просто 2 модальных окна, одно с формой, другое с надписями,
    2) соответственно отправляем форму аяксом, получаем ответ с сервера,
    3) в любом случае закрываем модалку с формой, открываем модалку для текста,
    4) назначаем таймаут функции, которая закроет модалку с текстом и откроет форму
    5) в модалку с текстом вставляем фразу, которую сервер вернет в результате обработки запроса из формы
    6) если на сервере все прошло ок - чистим форму: $('form').reset();
    7) Profit
    Ответ написан
    Комментировать
  • Почему не срабатывает .submit?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) судя по тому что на форму навешано всяких дата атрибутов - что-то стороннее уже юзает ее, посмотрите в инспекторе что висит на этой фоме из листенеров.
    2)попробуйте
    $('#form88826033').submit(function(e) {
    // я бы еще попробовал $('.t-form_inputs-total_3').submit(function(e) {
            e.preventDefault();
            console.log(this);
            _rc('send', 'order', {...

    и посмотреть чего там в консоль падает.
    Ответ написан
  • Как сделать preloader в php до загрузки html?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    есть вариант без аякса:
    1) делаете ссылку на страничку с прелоадером, то есть весь контент - только прелоадер
    2) Делаете на ней js: location.href = 'урл с гет параметрами который долго грузится'
    3) Profit! пока пхп не отдаст содержимое страницы с вашими тяжелыми запросами будет крутиться прелоадер, потом сразу загрузится вся тяжелая страничка.
    Ответ написан
    Комментировать
  • Сделать raycasting на js?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
  • Вывести рейтинг каждого фильма?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - у вас в цикле выводится лишний закрывающий тег див(или отсутствует открывающий в начале).
    Во вторых - 2019 год, за использование mysql_query по рукам лопатой на!
    В целом - код в котором и запросы и вывод и все-все-все в одном месте свалено в кучу - говнокод в его чистейшем проявлении.

    Касаемо кода запроса рейтинга - оберните все 3 дива в общий тег (див/спан/секшн - не важно), тогда код будет примерно такой:
    $(function (){
      $('.plus').on('click', function (){
      var dd = $(this).attr('data-plus');
      var box = $(this).parent().find('.summa');
      $.ajax({
         url: 'shablon/film_plus.php',
         type: 'POST',
         data: {"dd":dd},
         success: function(html){
            box.html(html); // подразумевается что в html возвращается рейтинг фильма
         }
      });
    });
    });
    Ответ написан
  • Можно ли получить значение data атрибутов в переменную php?

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

    Если это отдельная страница - то вам нужна форма, поле куда вы будете записывать полученное значение и при субмите формы уже обрабатывайте на сервере полученное значение.

    Если оно должно динамически изменять контент на текущей странице - аякс запрос на скрипт(у вас он вроде верный, не хватает обработчика ответа), скрипт уже формирует данные и отдает в ответ на аякс запрос по вкусу - кусок хтмл или json данные, смотрите с чем вам удобнее будет оперировать.
    Ответ написан
    3 комментария
  • Как отправлять в ajax функцию вместе id продукта и его quantity?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) функция у вас должна принимать 2 аргумента, вы ей передаете 1. Соответственно второй аргумент андефайнед.
    2) для того чтобы получить значение квантити его передавать не надо, так как вы его заранее не знаете. Вместо этого: уберите второй аргумент в функции. Вместо этого используйте this как опорный объект, от него находите парент (это будет див оборачивающий ваш блок, в вашем случае div.button-group), и в нем ищете .input_quantity.val()(это будет количество ) и вот его уже передаете в параметрах аякса.
    Ответ написан
    5 комментариев
  • Как сделать чтобы у каждого цикла был свой рейтинг правильно написать ajax запрос?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Используйте нормальные переменные, и вам легче будет и другим читать без матюков станет возможным. Ну что за название переменных ya, as? summa и reiting тоже доставляют, неужели лень посмотреть как это по английски пишется? Двойная польза - и язык учите и чтаемость повышаете же.
    2) Не понятна проблема, как вам указали в комментарии - это параметр у вас уже есть в первоначальной выборке, зачем вы его тащите аяксом - загадка.
    3) function film(){...} - те же ошибки - во первых что за название? Что делает эта функция? Фильм? Вы что, из принципа экономите буквы? Нельзя нормально написать function getMovieRate(movieId){...}?
    4) В большинстве случаев надо пользоваться "чистыми" функциями, то есть(упрощенно) функция не должна менять окружение, она должна принимать параметры и возвращать результат. У вас же она что-то мутит с элементами не принимая никаких параметров...

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