X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Отправка данных на e-mail из 2-х полей, Как реализовать такую функцию?
Linkoln
Linkoln
Topic Starter сообщение 6.5.2016, 10:25; Ответить: Linkoln
Сообщение #1


Участник
***

Группа: User
Сообщений: 135
Регистрация: 2.4.2014
Из: Россия
Поблагодарили: 39 раз
Репутация:   13  


Здравствуйте, уважаемые форумчане. Столкнулся я с проблемой, которая не дает мне покоя уже второй день.

Суть задачи - отправлять данные из 2-х полей (имя и телефон) на электронный ящик. После отправки выводить другой DIV "Сообщение отправлено". Все.

Я не силен в js и php, поэтому прошу помощи у опытных людей.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
KurtRassel
KurtRassel
сообщение 6.5.2016, 11:34; Ответить: KurtRassel
Сообщение #2


Новичок
*

Группа: User
Сообщений: 47
Регистрация: 22.6.2013
Поблагодарили: 12 раз
Репутация:   0  


Linkoln, привет, держи.

mail.php
Код
<?php
header('Content-Type: text/html; charset=utf-8');
if ($_POST['phone'] && $_POST['name']) {

    $mail = "myEmail@gmail.com"; // Принимающий email

    $title = "У Вас новое сообщение от " + $_POST['name'];
    $text = "Позвоните на номер " . $_POST['phone'];

    if (mail($mail, $title, $text, "Content-Type: text/plain;charset=utf-8\r\nFrom: ". $_POST['name'] ." <New". $_POST['name'] ."@gmail.com>\r\n")) {
        echo "<div>Сообщение отправлено!</div>";
    }
    else {
        echo "<div>Ошибка, ваше сообщение не отправлено!</div>";
    }

}


Добавить на страницу:

Код
<div id="status"></div>
<label>Имя:
  <input type="text" id="name">
</label>
<label>Телефон:
  <input type="text" id="phone">
</label>
<a href="#" id="send">Отправить</a>


<script>

var send = document.getElementById('send');
send.addEventListener('click', function() {
  var name = document.getElementById('name');
  var phone = document.getElementById('phone');
  if (name.value == '' || phone.value == '') {
    return false;
  }
  var status = document.getElementById('status');
  var xhr = new XMLHttpRequest();
  xhr.open('POST', '/mail.php', true);
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        status.innerHTML = xhr.responseText;
    }
    else {
        status.innerHTML = 'Ошибка сервера!';
    }
  }
  xhr.send('name=' + name + '&phone=' + phone);
});


</script>


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WoWeb
WoWeb
сообщение 6.5.2016, 11:56; Ответить: WoWeb
Сообщение #3


Бывалый
****

Группа: User
Сообщений: 256
Регистрация: 18.8.2015
Поблагодарили: 104 раза
Репутация:   18  


Linkoln,
Вот отличная форма, чекбокс я не робот, при отправке всплывает окно с благодарностью, можно во всплывающем окне сделать а можно и статично, но нужно ковырять CSS

_http://lebonnet.ru/ajax-forma-obratnoj-svyazi-php-jquery/comment-page_2-mt.html

P.S. Если сайт грузится и просто белое окно - отключите яваскрипт в браузере, у них какая то бага.

Сообщение отредактировал WoWeb - 6.5.2016, 11:57


--------------------
Моя тема: Разработка web сайтов | Мой сайт: https://woweb.com.ua/
Куплю ссылки на сайтах СДЛ не моложе 2-х лет.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
KurtRassel
KurtRassel
сообщение 6.5.2016, 12:15; Ответить: KurtRassel
Сообщение #4


Новичок
*

Группа: User
Сообщений: 47
Регистрация: 22.6.2013
Поблагодарили: 12 раз
Репутация:   0  


Немного ошибся, вместо:

Код
    else {
        status.innerHTML = 'Ошибка сервера!';
    }

вставить:
Код
    else if (xhr.readyState == 4 && xhr.status != 200) {
        status.innerHTML = 'Ошибка сервера!';
    }


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Linkoln
Linkoln
Topic Starter сообщение 6.5.2016, 21:11; Ответить: Linkoln
Сообщение #5


Участник
***

Группа: User
Сообщений: 135
Регистрация: 2.4.2014
Из: Россия
Поблагодарили: 39 раз
Репутация:   13  


Благодарю за ответы. Вечером протестирую.

Больше подходит форма KurtRassel, так как более простая как для меня, так и для пользователя. ^_^ Надеюсь будет работать.

Ни один вариант не работает.

Движок DLE
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
KurtRassel
KurtRassel
сообщение 6.5.2016, 21:30; Ответить: KurtRassel
Сообщение #6


Новичок
*

Группа: User
Сообщений: 47
Регистрация: 22.6.2013
Поблагодарили: 12 раз
Репутация:   0  


Форма:
Код
<div id="status"></div>
<label>Имя:
  <input type="text" id="name">
</label>
<label>Телефон:
  <input type="text" id="phone">
</label>
<a href="#" id="send" onclick="return false;">Отправить</a>


Код:
Код
<script>
var send = document.getElementById('send');
send.addEventListener('click', function() {
  var name = document.getElementById('name');
  var phone = document.getElementById('phone');
  if (name.value == '' || phone.value == '') {
    return false;
  }
  var status = document.getElementById('status');
  var xhr = new XMLHttpRequest();
  xhr.open('POST', '/mail.php', true);
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        status.innerHTML = xhr.responseText;
    }
    else if (xhr.readyState == 4 && xhr.status != 200) {
        status.innerHTML = 'Ошибка сервера!';
    }
  }
  xhr.send('name=' + name + '&phone=' + phone);
});

</script>


mail.php должен быть в корне или если не в корне, то пропишите в скрипте путь.

Чтобы протестировать, создайте mail.php добавьте в корень сайта и зайдите на него domain.com/mail.php, если увидите сообщение, тогда добавьте полный скрипт скрипт.
Код
<?php
echo "Работает";


Полный:
Код
<?php
header('Content-Type: text/html; charset=utf-8');
if ($_POST['phone'] && $_POST['name']) {

    $mail = "myEmail@gmail.com"; // Принимающий email

    $title = "У Вас новое сообщение от " + $_POST['name'];
    $text = "Позвоните на номер " . $_POST['phone'];

    if (mail($mail, $title, $text, "Content-Type: text/plain;charset=utf-8\r\nFrom: ". $_POST['name'] ." <New". $_POST['name'] ."@gmail.com>\r\n")) {
        echo "<div>Сообщение отправлено!</div>";
    }
    else {
        echo "<div>Ошибка, ваше сообщение не отправлено!</div>";
    }

}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Linkoln
Linkoln
Topic Starter сообщение 7.5.2016, 12:58; Ответить: Linkoln
Сообщение #7


Участник
***

Группа: User
Сообщений: 135
Регистрация: 2.4.2014
Из: Россия
Поблагодарили: 39 раз
Репутация:   13  


KurtRassel, сообщение выдает, но после замены кода не работает.

Каким-то чудом решил проблему.
Кому интересно, использовал эту форму - http://smartlanding.biz/otpravka-formy-bez...i-stranicy.html

Сообщение отредактировал Linkoln - 7.5.2016, 12:59
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыТрафик с mail
116 HukuTa 44510 18.3.2017, 17:48
автор: Дэнчик
Открытая тема (нет новых ответов) Mail.ru удаляет почту с ящика если долго не заходить?
9 balsanis 962 13.3.2017, 18:58
автор: Room
Открытая тема (нет новых ответов) 5 естественных ссылок с трастового ресурса Otvet.Mail.ru за 500руб
14 yulbee 2574 9.3.2017, 14:00
автор: yulbee
Открытая тема (нет новых ответов) Естественные ссылки в системе ответов Mail.ru
Качественные ссылки с уникальным околоссылочным текстом
11 Vsevseo 1101 8.3.2017, 11:48
автор: Vsevseo
Открытая тема (нет новых ответов) Уточнение данных администратора
14 Astrol 1797 6.3.2017, 20:16
автор: goldeuro


 



RSS Текстовая версия Сейчас: 28.3.2017, 14:01
Дизайн