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
Сообщений: 50
Регистрация: 22.6.2013
Из: Limassol
Поблагодарили: 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
Сообщений: 426
Регистрация: 18.8.2015
Поблагодарили: 176 раз
Репутация:   34  


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

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

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

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


--------------------


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


Частый гость
**

Группа: User
Сообщений: 50
Регистрация: 22.6.2013
Из: Limassol
Поблагодарили: 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
Сообщений: 50
Регистрация: 22.6.2013
Из: Limassol
Поблагодарили: 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.ru
Качественные ссылки с уникальным околоссылочным текстом
18 Vsevseo 2545 Вчера, 19:24
автор: Gelik
Открытая тема (нет новых ответов) Новости mail.ru появятся в "рекомендациях" Вконтакте?
19 eduarddis 2773 12.12.2017, 20:37
автор: galikfor
Открытая тема (нет новых ответов) Mail.Ru Group выпустила «убийцу» жестких дисков
20 jack 3306 12.12.2017, 11:15
автор: Neurotechnic
Открытая тема (нет новых ответов) Спам в разметке структурированных данных
если на сайте НЕТУ структурированных данных
12 tok24ua 1101 2.12.2017, 1:19
автор: genjnat
Открытая тема (нет новых ответов) Продам облако mail.ru на 1TB
2 seo_top 874 16.11.2017, 21:08
автор: seo_top


 



RSS Текстовая версия Сейчас: 14.12.2017, 19:41
Дизайн