Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
30 / 4 / 0
Регистрация: 13.07.2014
Сообщений: 22

Отправка почты PHP+Ajax

26.06.2016, 16:17. Показов 1571. Ответов 9

Студворк — интернет-сервис помощи студентам
Добрый день!
Поставлена задача, чтобы была сформирована подобная форма:

Заполняются поля и заявка уходит на определённую электронную почту.
Есть 3 файла взятые с просторов интернета и переделанные под поставленную задачу:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Заявка</title>
</head>
<body>
<p align=center>Нам необходимо составить заявку. Ответьте, пожалуйста, на следующие вопросы:</p>
    <form id="form">
        <table border="1">
        <col width="300">
        <tr><td>Дата - вн. № - 001 (пример: 2512-174-001)</td><td><input type="text" name="ID" placeholder="№ Заявки" size=100 form="form" required /></td>
        </tr>
            <tr><td>Название компании </td><td><input type="text" name="Company" placeholder="Имя компании" size=100 form="form" required /></td>
</tr>
                <tr><td>Как к Вам можно обращаться? </td><td><input type="text" name="ClientName" placeholder="Имя клиента" size=100 form="form" required /></td>
</tr>
                <tr><td>Мобильный + фиксированный телефон клиента </td><td><input type="text" name="Phone" placeholder="Контактные телефоны" size=100 form="form" required /></td>
</tr>
                <tr><td>Узнать, существует-ли таковой в компании? </td><td><input type="text" name="ItEngineer" placeholder="ФИО IT специалиста" size=100 form="form" required /></td>
</tr>
                <tr><td>Если звонит не IT admin </td><td><input type="text" name="PhoneItEngineer" placeholder="Контактный телефон IT специалиста" size=100 form="form" required /></td>
</tr>
                <tr><td>Адрес подключения абонента </td><td><input type="text" name="Addres" placeholder="Адрес" size=100 form="form" required /></td>
</tr>
                <tr><td>Телефон/Интернет </td><td><input type="text" name="ServiceType" placeholder="Тип услуги" size=100 form="form" required /></td>
</tr>
                <tr><td>Время отключения </td><td><input type="text" name="TimeOff" placeholder="Время отключения" size=100 form="form" required /></td>
</tr>
                <tr><td>Дать понятное объяснение, «своими словами», о причине отказа, 
например, обрыв оптики, нет эл. питания, и т. д. </td><td><textarea type="text" name="TypeOfFilure" placeholder="Тип отказа" rows="7%" cols="100%" form="form" required /></textarea></td>
</tr>
                <tr><td>Есть-ли косвенные признаки, по которым можно идентифицировать проблему, 
например, нет электричества в здании, или копают траншею вокруг здания, или в коридоре ведутся какие-то работы и т.д. </td><td><textarea type="text" name="IndirectSigns" placeholder="Есть-ли косвенные признаки" rows="7%" cols="100%" form="form" required /></textarea></td>
</tr>
                <tr><td>Комментарии о проведённой диагностике, о перезагрузке оборудования, ip-адресах, DNS которые мы видим у абонента </td><td><textarea type="text" name="Diagnostics" placeholder="Комментарии о проведённой диагностике" rows="7%" cols="100%" form="form" required /></textarea></td>
</tr>
        </table>
                <button>Отправить</button>
    </form>
    <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
    <script src="common.js"></script>
</body>
</html>

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
$recepient = "zhizn@deneg.net";
$sitename = "site.com";
 
$ID = trim($_POST["ID"]);
$Company = trim($_POST["Company"]);
$ClientName = trim($_POST["ClientName"]);
$Phone = trim($_POST["Phone"]);
$ItEngineer = trim($_POST["ItEngineer"]);
$PhoneItEngineer = trim($_POST["PhoneItEngineer"]);
$Addres = trim($_POST["Addres"]);
$ServiceType = trim($_POST["ServiceType"]);
$TimeOff = trim($_POST["TimeOff"]);
$IndirectSigns = trim($_POST["IndirectSigns"]);
$Diagnostics = trim($_POST["Diagnostics"]);
$message = "№ заявки: $ID \nНазвание компании: $Company \nИмя клиента: $ClientName \nКонтактные телефоны: $Phone \nФИО IT специалиста: $ItEngineer \nКонтактный телефон IT специалиста: $PhoneItEngineer \nАдрес: $Addres \nТип услуги: $ServiceType \nВремя отключения: $TimeOff \nТип отказа: $TypeOfFilure \nЕсть-ли косвенные признаки: $IndirectSigns \nКомментарии о проведённой диагностике: $Diagnostics";
 
$pagetitle = "Новая заявка с сайта \"$sitename\"";
mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient");

Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(document).ready(function() {
 
    $("#form").submit(function() {
        $.ajax({
            type: "POST",
            url: "mail.php",
            data: $(this).serialize()
        }).done(function() {
            $(this).find("input").val("");
            alert("Заявка сформирована и отправлена.");
            $("#form").trigger("reset");
        });
        return false;
    });
    
});

Собственно, html-код виден на картинке. Визуальная часть работает как надо.
Не работает кнопка "Отправить", при нажатии ничего не происходит. Если поля не заполнять, то ругается, что не заполнены нужные поля.
Вероятно, ошибка в файле php? Куда копать?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.06.2016, 16:17
Ответы с готовыми решениями:

Не работает отправка почты на php
Вот код: он должен отправлять письмо на любой указанный mail, но он этого не делает qw.php session_start(); $_SESSION =...

Отправка почты средствами php
Вот код из книжки: function send_mime_mail($name_from, $email_from, ...

Отправка почты на gmail с PHP
Здравствуйте. Вопрос следующий. У меня на сайте организована отправка писем. Письмо отсылает метод класса которому я передаю 3...

9
30 / 4 / 0
Регистрация: 13.07.2014
Сообщений: 22
26.06.2016, 16:24  [ТС]
P. S. Вычитал, что на локальной машине не будет работать, так-ли это?
Хотя бы Alert должен выдавать какую-то ошибку при этом?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.06.2016, 16:28
Цитата Сообщение от Tatasik Посмотреть сообщение
Куда копать?
Логи копать
1
30 / 4 / 0
Регистрация: 13.07.2014
Сообщений: 22
26.06.2016, 16:53  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Логи копать
Где их искать?
Разве логирование где-то ведётся?
Стоит отметить, что я не программист, а любитель.
Просто поменял переменные на свои.
Кликните здесь для просмотра всего текста
Чтобы авторство кода сохранить, ссылка на видео:https://www.youtube.com/watch?v=Ltmh0ybH1cI
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.06.2016, 17:06
Цитата Сообщение от Tatasik Посмотреть сообщение
Где их искать?
Начать с консоли браузера, проверить нет ли ошибок js, посмотреть какой ответ на ajax запрос приходит
1
30 / 4 / 0
Регистрация: 13.07.2014
Сообщений: 22
26.06.2016, 17:21  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Начать с консоли браузера
Вот такую штуку выдает:
Кликните здесь для просмотра всего текста
jquery-1.11.2.min.js:4 XMLHttpRequest cannot load file:///C:/Users/***/mail.php. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.send @ jquery-1.11.2.min.js:4
3jquery-1.11.2.min.js:4 XMLHttpRequest cannot load file:///C:/Users/***/mail.php. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.send @ jquery-1.11.2.min.js:4ajax @ jquery-1.11.2.min.js:4(anonymous function) @ common.js:4dispatch @ jquery-1.11.2.min.js:3r.handle @ jquery-1.11.2.min.js:3

Не удаётся загрузить mail.php. Все 3 файла в одной папке.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.06.2016, 17:22
Tatasik, а веб сервер установлен?
1
30 / 4 / 0
Регистрация: 13.07.2014
Сообщений: 22
26.06.2016, 17:29  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
веб сервер установлен?
Нет, всё лежит в локальной папке, на рабочем столе.
Нужно заливать форму на сервер? Локально не проверить?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.06.2016, 17:30
Лучший ответ Сообщение было отмечено Tatasik как решение

Решение

Цитата Сообщение от Tatasik Посмотреть сообщение
Локально не проверить?
Установить веб сервер, прикрутить к нему php и можно локально проверять.
1
30 / 4 / 0
Регистрация: 13.07.2014
Сообщений: 22
26.06.2016, 17:58  [ТС]
Jewbacabra, волшебство!
Залил файлы на бесплатный хостинг. Всё работает.
Осталось кодировку подправить.
Спасибо за помощь. Тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.06.2016, 17:58
Помогаю со студенческими работами здесь

PHP и отправка запроса по ajax
Добрый день, подскажите пожалуйста. &lt;?php if (!empty($_GET)): ?&gt; &lt;?php foreach ($sections as...

Ajax отправка письма на почту, ошибка в файле mail.php
Разработал форму для отправки писем на почту посредством ajax и все бы ничего, но на почту приходит пустое письмо. Скрипт отправки js...

PHP отправка почты с локального сервера
Всем привет! Подскажите пожалуйста каким образом можно отправлять почту с локального сервера например на mail.ru?? У меня код прописан,...

Отправка почты
Добрый вечер, вопрос банальный, но всё же... Не работает почта, причём на локальном сервере всё работает прекрасно и без проблем, а на...

Отправка почты
Здравствуйте. делаю отправку почты через фреймвок (laravel4), почему то не отправляются письма на ящики типа test.log@gmail.ru (не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru