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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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

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

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


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


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


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

Код
    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


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

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

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

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


Форма:
Код
<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


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

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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
15 yaroslav89 6877 8.4.2024, 17:17
автор: spoyer_ru
Открытая тема (нет новых ответов) ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ
[Чарджбек|Рекавери|Возврат]
9 Leado 3917 9.2.2024, 16:04
автор: baza0013
Открытая тема (нет новых ответов) Быстрый валидатор email Gmail|Yandex|Mail.ru|Rambler|Yahoo|Hotmail|Live|Msn+ -=GoodMail=- на запросах Zennoposter
шустрый многопоточный валидатор почт на запросах
0 akcium 2012 19.11.2022, 13:17
автор: akcium
Открытая тема (нет новых ответов) Базы данных, различной тематики, выкладываем тут.
Делимся, обмениваемся, заказываем, парсим.
12 InfoObmen 15266 4.9.2022, 2:32
автор: Галецкая
Открытая тема (нет новых ответов) Базы сайтов разных тематик для звонков и E-mail рассылок (Россия)
0 maxmer 2069 8.7.2022, 11:05
автор: maxmer


 



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