Отправка формы на почту. Верстка валидация и отправка формы без перезагрузки. AJAX. PHPMailer.

Поделиться
HTML-код
  • Опубликовано: 29 июн 2024
  • Отправка формы на почту очень частая задача при разработке любого сайта. Особенно популярна форма на лендинг. Конечно же при этом форму нужно красиво сверстать, а также особым образом валидировать поля формы. Поэтому в этом выпуске я решил показать как сделать все это сразу используя HTML CSS JavaScript и плагин PHP PHPMailer. Ты научишься верстать и стилизовать различные элементы форм такие как checkbox radio select button file и другие. Добавим крутую фишку превью для загружаемой фотографии. Сделаем валидацию полей в том числе e-mail. И, с помощью JavaScript технологии AJAX (fetch), без перезагрузки страницы отправим форму на почту, настроив при этом плагин PHPMailer.
    ⚡Партнер выпуска хостинг FOZZY: to.fozzy.com/FreelancerLife
    👉 Скачать результат урока на Patreon: / 42671910
    👉 Плагин PHPMailer: github.com/PHPMailer/PHPMailer
    🔴 Получить доступ к плюшкам + поддержать канал: / freelancerlifestyle
    🔴 Telegram канал: t.me/freelancer_lifestyle (teleg.run/freelancer_lifestyle)
    🔴 Telegram чат по верстке: t.me/flschat (teleg.run/flschat)
    🔴 Facebook: / freelancerlifestyle
    🔴 Instagram: / freelancer.lifestyle
    Содержание:
    00:00 - В выпуске
    00:34 - РЕКЛАМА
    01:53 - Пишем HTML код
    11:22 - Стилизация формы на CSS
    12:02 - Стилизация INPUT и TEXTAREA на CSS
    13:15 - Стилизация RADIO кнопок на CSS
    18:21 - Стилизация SELECT
    20:51 - Стилизация INPUT FILE на CSS
    23:48 - Стилизация CHECKBOX на CSS
    26:53 - Стилизация BUTTON на CSS
    28:44 - Стилизация состояния при фокусе
    30:07 - Пишем JavaScript
    31:30 - Пишем валидацию формы на JS
    38:32 - Пишем добавление файла на JS
    41:31 - Пишем отправку формы на JS (fetch)
    46:02 - Работа с PHPMailer. Отправка письма
    50:13 - Загрузка на сервер
    50:27 - Проверка работы
    51:15 - Заключение
    👋 Меня зовут Женя Андриканич, я IT - специалист, занимаюсь разработкой сайтов. На этом канале, я регулярно и в максимально доступном формате буду делиться с тобой своим опытом, наработками, секретами и лайфхаками!
    Ссылка на канал: / freelancerlifestyle
    🤟 Живи, а работай в свободное время! ©

Комментарии • 757

  • @FreelancerLifeStyle
    @FreelancerLifeStyle  3 года назад +47

    🤟Полезно?
    🔴 Получить доступ к плюшкам + поддержать канал: www.patreon.com/freelancerlifestyle
    🔴 Telegram канал: t.me/freelancer_lifestyle (teleg.run/freelancer_lifestyle)
    🔴 Telegram чат по верстке: t.me/flschat (teleg.run/flschat)
    🔴 Facebook: facebook.com/freelancerlifestyle
    🔴 Instagram: instagram.com/freelancer.lifestyle

    • @user-eq5rm5nh4h
      @user-eq5rm5nh4h 3 года назад

      Евгений, посмотри, пожалуйста, я сделал pull request для "Динамического адаптива"

    • @sasharodirodionov9580
      @sasharodirodionov9580 3 года назад

      Здраствуй Женя. Прости что с такой просьбой, но.... А как бы попросить пожалуйста у тебя файлик с select.js?? Я понимаю, что выше, на патрионе, но есть обстоятельства почему я прошу. Можно как ни будь это устроить в телеграме @rodionni/
      Если что, за ранее Огромное Спасибо!!!!
      У меня в планах патрион и все к нему действия, но чутка по техническим причинам позже........

    • @user-kq6gp1jt1b
      @user-kq6gp1jt1b 2 года назад

      Привет 🙃 *фрилансер по жизни* а каа сделать чтобы формы были отправлены на страницу или сайт

  • @cryptoendeavour
    @cryptoendeavour 3 года назад +15

    Это просто пушечно, невероятно, спасибо за такие подробные и качественные, а главное полезные для практических целей уроки.

  • @user-tu8lc6wc6q
    @user-tu8lc6wc6q 2 года назад +9

    хочу поблагодарить тебя за твои уроки, они как глоток воды в пустыне, мало кто может объяснить и показать так как это делаешь ты, еще раз огромное тебе спасибо и мы будем ждать от тебя новых видео )

  • @noname-ku3zg
    @noname-ku3zg 3 года назад +12

    Спасибо, Женя. Ты единственный на ютубе, кто все понятно и просто обьясняет по фронтенду. Когда отчаиваешься и бросаешь верстку изза непонимания, твои видео всегда выручают меня и вдобавок дают сильную мотивацию

  • @jahongirbektemirov6516
    @jahongirbektemirov6516 3 года назад +10

    Я тоже давно ждал это выпуск и наконец выпускал, очень рад от вас, супер и полезно 👍

  • @nikbraun5013
    @nikbraun5013 3 года назад +8

    Благодарность! Как же вы интересно с эмоциями рассказываете, приятно слушать и учиться !

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  3 года назад +1

      Я рад!

    • @nikbraun5013
      @nikbraun5013 3 года назад

      @@FreelancerLifeStyle с Ваших уроков, Я начинал осваивать и продолжаю изучать сферу программирования. Делаю заказ, осталась обратная связь и страница с комментариями (дискус) и прочие не хочу ставить. Так как нужно выполнять работу качественно!

  • @dinir1000
    @dinir1000 3 года назад +4

    Наконец то я дождался ! Спасибо огромное ! Форма и всё что с ней связано - это можно сказать Важнейший элемент для современного сайта.

  • @evgeniymedvedev5799
    @evgeniymedvedev5799 Год назад +1

    Шикарное видео. Это настоящий клад знаний и опыта. Благодарю, Евгений

  • @MerriedFellow
    @MerriedFellow 3 года назад +2

    Женя, спасибо за отличное видео. Самое лучшее в твоих видео то, что после них желание продолжать только усиливается.

  • @johnspireng1960
    @johnspireng1960 2 года назад +5

    С бутофорными кнопками - гениально! Жека, мне определенно нравится твой тип мышления и способы решения задач в верстке (кстати именно по этой причине и подписался на твой канал, когда первый раз на него наткнулся).

  • @alexanderwagner8199
    @alexanderwagner8199 Год назад

    Женя, какое же огромное тебе спасибо за все твои уроки! Начну зарабатывать, обязательно поддержу твой канал!

  • @vitalyverdiyev9078
    @vitalyverdiyev9078 3 года назад +2

    Самое огроменное Вам спасибо, дядя Женя!

  • @user-ov1sk3nh6z
    @user-ov1sk3nh6z 3 года назад +2

    Супер!! Так мало хорошего контента на эту тему, и вот наконец-то! Спасибо!

  • @disconnect355
    @disconnect355 3 года назад +1

    Дружище, как же ты вовремя!

  • @user-sx4rr4yo6p
    @user-sx4rr4yo6p 3 года назад +2

    Cпасибо Вам огромное за ваш очень детальный и познавательный контент очень много нового узнал благодаря вашему каналу. По больше бы таких как вы людей. Всего хорошего вам и вашим близким, а каналу процветания!!!

  • @user-ek4bo5wl6w
    @user-ek4bo5wl6w 3 года назад +4

    Супер! Давно ждал чего то в этом роде!

  • @user-qf2jr9ef1s
    @user-qf2jr9ef1s 3 года назад +19

    Спасибо за видео!) Сделала по уроку форму, но столкнулась с такими проблемами:
    1. В Js коде в функции валидации в конце нужно написать return error. Без этого браузер выдавал ошибку на незаполненное поле.
    2. На видео путь require в файле php - phpmailer/src/PHPMailer.php, а скачанная папка имеет имя PHPMailer-6.2.0. Из-за этого тоже была ошибка.
    Может, кому-то будет полезно.
    В остальном урок огонь, все понятно и доступно, спасибо)

    • @user-qq6hl8cd7v
      @user-qq6hl8cd7v 3 года назад +1

      Привет, а по второму пункту какую ошибку выдавало, не помнишь?

    • @sasharodirodionov9580
      @sasharodirodionov9580 3 года назад

      Настя здраствуй. А как бы попросить пожалуйста у тебя файлик с select.js?? Я понимаю, что выше, на патрионе, но есть обстоятельства почему я прошу. Можно как ни будь это устроить в телеграме @rodionni/
      Если что, за ранее Огромное Спасибо!!!!

  • @irinadim
    @irinadim 3 года назад

    Женя, у вас столько позитива, сижу продолжаю улыбаться))))))Спасибо за уроки!

  • @serhiistanislav
    @serhiistanislav 3 года назад +2

    Ну наконец-то 😌 Давно ждал такой видос 🔥

  • @over1679
    @over1679 3 года назад +1

    Только собирался делать форму обратной связи и тут выходит видео. Спасибо!!!

  • @nikitasadovnikov6739
    @nikitasadovnikov6739 3 года назад

    Огромное спасибо! Урок потрясающий!

  • @user-ov1wz8tx2l
    @user-ov1wz8tx2l 3 года назад

    Братан, не могу сдержать радость. Я сейчас пишу сайт для школьной работы и ни как не мог реализовать форму и ещё некоторые вещи, но ты прям спас меня. Огромное спасибо!!

  • @user-lb4xg6jf6j
    @user-lb4xg6jf6j 3 года назад +1

    Жека, спасибо большое за такой чудесный урок! Ты лучший на ютубе блогер, мне очень повезло что я попал на твой канал! Успехов тебе в дальнейшем развитии. Буду поддерживать всегда комментариями и лайками ! =)

  • @s1venkov1
    @s1venkov1 2 года назад

    Видео просто бомба, всё максимально подробно и понятно! Ты лучший!

  • @HmurayaKoshka
    @HmurayaKoshka 3 года назад +5

    Я обожаю ваши уроки, очень вдохновляет!

  • @irinak6662
    @irinak6662 3 года назад +6

    Спасибо, Жека! Очень интересно, даже что-то поняла :). Но не думала, что для отправки такой на вид маленькой формы нужно столько разного кода. А форма очень симпатичная получилась!

  • @tanitapak4839
    @tanitapak4839 3 года назад

    ох, за одно это видео получила больше позитива, чем за всю жизнь))

  • @kotlancer
    @kotlancer 3 года назад +3

    Ух, соскучился по таким выпускам! ОГОНЬ!!!!)))

  • @deekin3005
    @deekin3005 3 года назад +10

    Вот это я искал пару месяцев назад) Спасибо! Штука реально нужная. И валидация и почта и стилизация не стилизуемого)👏👏👏

  • @user-dn9yk7hx1z
    @user-dn9yk7hx1z 2 года назад

    Лучший урок по формам, спасибо!

  • @kirillart1830
    @kirillart1830 11 месяцев назад

    Урок огонь! Спасибо большое!

  • @megafyrnd
    @megafyrnd 2 года назад +1

    Спасибо тебе, человечище. Благодаря тебе, я себе сайт доделываю потихоньку)))

  • @deniskotov
    @deniskotov 3 года назад +12

    ЭТО ЯДЕРНАЯ БОМБА!!!!)))) Как же я давно ждал этот выпуск от тебя!))))) Спасибо)))))))))))))))))

  • @anutasolnechnaya8297
    @anutasolnechnaya8297 3 года назад

    Очень полезное видео!!! Женя, спасибо большое!!!

  • @developerblog1
    @developerblog1 3 года назад

    Выпуск топ , спасибо 👍👍👍

  • @puldirection3190
    @puldirection3190 3 года назад +1

    Зарядился позитивом на весь день!! Спасибо!!! ты крут!!!

  • @RMGame
    @RMGame 3 года назад +65

    Жееееень, прошу тебя сделай такой же ролик, только с регистрацией и не много работы с БД:) Ты лучший!)

    • @user-vw3pw6hf5x
      @user-vw3pw6hf5x 3 года назад +6

      Согласен, как раз такого точно чего-то не хватает!

  • @bobmaster2012
    @bobmaster2012 3 года назад +2

    Фрилансер по жизни - IT и фриланс - а ти прям знаєш, який відос запилити) . Якраз верстаю статику, і треба таку форму. Прям в точку.

  • @pylinux0
    @pylinux0 3 года назад +1

    Это то, что мне именно сейчас нужно было! Спасибо большое, помог!!!

  • @algiruy8721
    @algiruy8721 3 года назад +2

    Спасибо за классный урок ! Очень информативно.

  • @maxedits7064
    @maxedits7064 3 года назад

    Изучал HTML CSS JS сам в интернете, делал свои сайты и было столько забот, кода больше и много лишнего. Но когда сейчас посмотрел буквально 1 твой ролик, то все проблемы как будто рукой сняло, я открыл столько нового для упрощения своего кода и эффективного верстания страницы, спасибо большое!

  • @DNeeX
    @DNeeX 3 года назад +1

    Только сегодня утром мне сказали, чтоб шёл разбираться, как отправлять форму на почту. И тут приходит уведомление с твоим видео)

  • @valrriderr
    @valrriderr 3 года назад +44

    Женя ты лучший, уже неделю вожусь со своим сайтом, никак не мог сделать форму. А ты прям как знал))

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  3 года назад +13

      Я рад что помог!

    • @user-kp4fn7os5n
      @user-kp4fn7os5n 3 года назад +4

      @@vana__f7570 рабочий вариант function emailTest(email) {
      const re = /^(([^()\[\]\\.,;:\s@"]+(\.[^()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
      return re.test(String(email).toLowerCase());
      }

  • @IgorRead
    @IgorRead Год назад

    Это мега урок, БЛАГОДАРЮ!!!

  • @elenkarnaeva2458
    @elenkarnaeva2458 3 года назад +1

    Это было прекрасно!!!! Благодарю!

  • @user-qn7zf9js3y
    @user-qn7zf9js3y 2 года назад

    Супер-позитивный Человечище! Я так за сборную на Олимпиаде не волновался, как за супер-письмо )))))

  • @user-nm1eq7qu7c
    @user-nm1eq7qu7c Год назад

    Просто супер! Большое спасибо!

  • @user-bn1hz2wz4p
    @user-bn1hz2wz4p 2 года назад

    все что ты делаешь реально очень круто! спасибо тебе огромное!!!

  • @Blackbart3k
    @Blackbart3k 3 года назад +10

    Добра тебе, брат, ты лучший)

  • @user-pf7ht6th8x
    @user-pf7ht6th8x 3 года назад +1

    Евгений! Спасибо за урок!

  • @KindCat21
    @KindCat21 3 года назад +2

    Крайне полезный урок!

  • @kirillpopov1445
    @kirillpopov1445 3 года назад

    Всё понять и по делу. Спасибо!

  • @deniskotov
    @deniskotov 3 года назад

    Жека-Жека! Как же люблю твои уроки!)))

  • @denyssamsonov9369
    @denyssamsonov9369 3 года назад

    ... довольно заморочено, но ОЧЕНЬ круто! BRAVO!!!

  • @MegaDragon1112
    @MegaDragon1112 3 года назад +1

    Wow! Очень полезное видео, лайк однозначно

  • @brodyagaPATY
    @brodyagaPATY 3 года назад +1

    Наконец то без костылей научился)))) Жека ты лучший!!!!! Спасибо!!!

  • @baboon_hero
    @baboon_hero 2 месяца назад

    Кайфую от того, как ты кайфуешь от своего дела 😃

  • @jenyaspace
    @jenyaspace 3 года назад +1

    Спасибо за урок по отправке без применения жуквери))

  • @dmitriyegorov4764
    @dmitriyegorov4764 3 года назад +2

    Ох, Женя! Магистр! Спасибо за очередную порцию знаний! )

  • @shukonfadah5725
    @shukonfadah5725 2 года назад +1

    все ваши виде это лучшее что можно найти на русскоязычном сегменте! Я поддерживаю вас во всём! желаю мира и спокойствия вашей стране и семье!!!

  • @yuriybondaruyk1145
    @yuriybondaruyk1145 3 года назад

    Отлично, класс!
    Спасибо!))

  • @user-dd1wk3kf1c
    @user-dd1wk3kf1c 3 года назад +2

    И снова топовый контент!

  • @GravelTravel
    @GravelTravel Год назад +1

    Євген, дуже тобі дякую за корисний урок. Учора пів дня сидів розбирався з цим кодом. І все дуже добре вийшло. Трохи переробив під себе, протестував і все гарно працює. :)

    • @user-dp3rg5kw1s
      @user-dp3rg5kw1s Год назад

      Как вы решили проблему помогите пжж

  • @DashaG182
    @DashaG182 2 года назад

    супер знания и супер позитив

  • @AdwardGoncharov
    @AdwardGoncharov 3 года назад

    Зачётное видео, респект

  • @Azerchay123
    @Azerchay123 3 года назад +14

    Стоит еще немного модернизировать эту форму, где проверка на пустые строки. Чтобы не приходило сообщение, где поле какое-то пустое. А то получается, что можно понаставить пробелов в имя, и валидация проходит успешно.
    if (input.value.trim() === '') {
    //something here
    }

  • @bunnybugs6623
    @bunnybugs6623 Год назад

    И получаем пакую вот штуку, красавчик просто, от души!)

  • @proquiz2308
    @proquiz2308 10 месяцев назад +1

    За загрузку 2 лайка ставлю, гениально))

  • @serzhuk22
    @serzhuk22 3 года назад +4

    Лайк авансом. Позже гляну)

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  3 года назад +1

      Я проверю )))

    • @serzhuk22
      @serzhuk22 3 года назад

      @@FreelancerLifeStyle домовились, земляче ;)

  • @user-zc3gz4be3v
    @user-zc3gz4be3v 3 года назад

    Жека! Как всегда, видос в нужное время , отдельный респект за эмоции в конце, когда ждал письмо на почту, аж проникся вместе с тобой. Но и минус есть небольшой , поскольку я, пока, не имею возможности отщипнуть от семейного бюджета даже тот мизер , чтобы оплатить доступ на патреон придется скачать этот видос, чтобы покадрово можно было бы переписать скрипт изменения стилей select . Ты супер Мега +10000009000000

  • @mems_browser
    @mems_browser 3 года назад

    Спасибо большое, однозначно лайк =)

  • @bigmathato8131
    @bigmathato8131 3 года назад +1

    спасибо за видосик ТЫ СУПЕР!!!

  • @vyacheslavzabelskiy3745
    @vyacheslavzabelskiy3745 3 года назад +3

    Просто МЕГА!!

  • @apsolution4722
    @apsolution4722 3 года назад +19

    Добрый дядя Женя узнал что я вчера гуглил целый день и решил помочь. Ну чудо какое-то!!) Спасибо за видео, очень интересно

  • @ffedchik
    @ffedchik 3 года назад

    Не просто замечательно, а хорошо-замечательно!

  • @user-dv3di4nv1b
    @user-dv3di4nv1b 2 года назад +9

    Это уже не просто техническая работа...Это реальное искусство, Евгений, вы мастерски так рисовали весь сайт и писали код, что просто глаза оторвать на протяжение 50 минут было невозможно...Респект!

  • @bessonov7897
    @bessonov7897 3 года назад +1

    Огромное спасибо за видео! Только хотел научиться делать форму

  • @alexeyartishchev9832
    @alexeyartishchev9832 Год назад

    Спасибо, очень помогло!👏

  • @evgeniyveris
    @evgeniyveris 3 года назад +1

    Спасибо! Очень полезный видос по всем фронтам!

  • @user_PsevdonimyEtoPolnyjOtstoj
    @user_PsevdonimyEtoPolnyjOtstoj 3 года назад

    Прям вовремя! )))

  • @arthurvolokhov1911
    @arthurvolokhov1911 3 года назад

    Просто обалденный видос. Я в восторге. Тока добавил одну отсебятину. А именно, когда я добавил тень к инпутам в фокусе, чтобы обозначить эффект присутствия, то в транзишине указал не all, а именно box-shadow. Дело в том, что если в transition указываешь all, то тень начинает плавно и красиво появляться, а изменение размера текстового поля для сообщения путем перетаскивания, неприятно тормозить.

  • @inspirostudio
    @inspirostudio 3 года назад

    Большое спасибо за видео!

  • @aleksgbr3878
    @aleksgbr3878 3 года назад +1

    Супер 100500 раз лучший Жека прогер!!!

  • @vassilk
    @vassilk 3 года назад +5

    Дуже круто, як завжди на висоті. Дякую! за такі якісні уроки. Ще б розказав про іконочні шрифти, якщо буде час

  • @user-qr5ry8xo9d
    @user-qr5ry8xo9d 3 года назад +1

    ЛУЧШИЙ!!!))))

  • @ArrendadorDivisa
    @ArrendadorDivisa 2 года назад +4

    Привет Женя, спасибо за очередной полезный урок. Ты мог бы снять отдельное видео про упомянутый здесь кастомный выпадающий список ? Он давольно часто встречается на сайтах и это будет хорошая практика по JS для всех!

  • @user-wy1qd5oi3v
    @user-wy1qd5oi3v 3 года назад +4

    Класс 👍👍👍

  • @hdrhighdigitalrap5474
    @hdrhighdigitalrap5474 Год назад

    Жека, як би ми без тебе жили?) Дякую!
    Впав зі стула від жарту про завантаження 😆

  • @alexles5003
    @alexles5003 4 месяца назад

    Очень крутой урок. Фишка с FileReader для показа изображения зашла. Хорошо показана работа с формой. Стилизация чекбоксов и радио тоже стандартный подход. Посмотрел даже на React решениях никто обычно не собирает данные формы в ручную. Работают с FormData. Так что, показанные здесь техники это база.

  • @stefanskyi_
    @stefanskyi_ 3 года назад

    👍 Вподобайка та комент 🔥🔥🔥

  • @dragnil96
    @dragnil96 3 года назад

    Оооо великий Евгений да прибудет с тобой сила . Это то что нужно . Может еще про Api токены и тд. Выпустишь видео

  • @user-wu4jj8vl9i
    @user-wu4jj8vl9i 3 года назад +1

    красиво разложил!

  • @deevue_sews
    @deevue_sews 2 года назад

    Работает!
    Я счастлив.

  • @azat_abdykali
    @azat_abdykali 3 года назад +3

    ууррра спасибо )

  • @kerusdc8322
    @kerusdc8322 3 года назад +2

    ой какая круть 🔥

  • @user-lq1ty8su7s
    @user-lq1ty8su7s 3 года назад

    Жека ты лучший!

  • @IT-Svyatoslav
    @IT-Svyatoslav 3 года назад

    Спасибо Жека!

  • @RefuelTheRocket
    @RefuelTheRocket 2 года назад +7

    Разбери пожалуйста этот JS скрипт в отдельном уроке) Спасибо за видео, вот бы ты сделал полный курс по JS уроков на 200, эх

  • @lesjoni8347
    @lesjoni8347 3 года назад +2

    Мой мозг расплавился от Javascript и php, надеюсь буду понимать в будущем.

  • @vipeerx
    @vipeerx 3 года назад +1

    Эта радость))