30 / 4 / 0
Регистрация: 13.07.2014
Сообщений: 22

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

26.06.2016, 16:17. Показов 1616. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru