29.10.2017, 06:19
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Заменить значения value в форме при отправке на email
Всем привет.
Столкнулся с одной проблемой.
Есть калькулятор, пока в таком тестовом виде av.emoney.blog
Все вроде работает как надо. Все считает.
Но вот появилась необходимость отправить форму на почту.
Форма отправляется на почту админу и пользователю.
А раз отправляется пользователю - должна читаться нормально...
Поскольку тут все поля - селекты, чекбоксы, радиобаттоны,
то на почту приходит значение value, либо "on" для чекбокса.
Соответсвенно когда на почту приходит название поля и value 1 или 2 - то это как-то не удобно...
С другой стороны, числовые value применялись чтобы в калькуляторе все нормально работало.
Есть какой-то вариант, чтобы при отправке на почту, вместо value="1" приходил какой-то текст, заданный заранее?
Отправляются данные при помощи phpmailer, но это не принципиально...
Приходит в таком виде:
Бюджет (1-Дешево, 2-Средний, 3-Премиум) - 1
Размер витрины - 1
Тип проектора для маленькой витрины - 2
|
|
29.10.2017, 08:47
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
the_little, а что мешает на сервере сделать нормальный вид письма?
|
|
29.10.2017, 13:01
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сообщение от ruslan_mart
|
the_little, а что мешает на сервере сделать нормальный вид письма?
|
Уровень знаний, надо полагать...
Я еще сейчас подумал, у меня выводится в html такие значения из калькулятора. Может можно их передать на почту? ПРосто там же динамические данные получается.
document.getElementById("check-sp").innerHTML = sp;
document.getElementById("check-pp").innerHTML = pp;
document.getElementById("check-lp").innerHTML = lp;
document.getElementById("check-w").innerHTML = w;
document.getElementById("check-ip").innerHTML = ip;
document.getElementById("check-cp").innerHTML = cp;
document.getElementById("check-kp").innerHTML = kp;
document.getElementById("check-m").innerHTML = m;
Ну и html
<div class="check">
<div class="check-sp">
Стоимость пленки:
<span id="check-sp"></span>
</div>
<div class="check-pp">
Стоимость проектора:
<span id="check-pp"></span>
</div>
<div class="check-lp">
Стоимость лазера:
<span id="check-lp"></span>
</div>
<div class="check-w">
Стоимость WUXGA:
<span id="check-w"></span>
</div>
<div class="check-ip">
Источник:
<span id="check-ip"></span>
</div>
<div class="check-cp">
Коммутация:
<span id="check-cp"></span>
</div>
<div class="check-kp">
Крепление:
<span id="check-kp"></span>
</div>
<div class="check-m">
Монтаж:
<span id="check-m"></span>
</div>
</div>
|
|
29.10.2017, 14:53
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от the_little
|
у меня выводится в html такие значения из калькулятора. Может можно их передать на почту?
document.getElementById("check-sp").innerHTML = sp;
document.getElementById("check-pp").innerHTML = pp;
document.getElementById("check-lp").innerHTML = lp;
|
То есть sp, pp, lp, ... это как раз то, что пользователю будет понятно?
|
|
29.10.2017, 15:04
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сообщение от laimas
|
То есть sp, pp, lp, ... это как раз то, что пользователю будет понятно?
|
совершенно верно. Это переменные, в которых хранится сумма за то или иное оборудование.
Вообще имея возможность отправить на почту данные со скрипта, я смогу сверстать любые нужные данные... Вопрос как их отправить на почту.
Хотя я так понимаю есть вариант отправить на email без php, на чистом JS
|
|
29.10.2017, 15:12
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от the_little
|
совершенно верно.
|
Уверены в этом? А если реальный пример из жизни? Пришли вы в магазин, а на полках товары не с названиями "Конфеты", "Печенье", ..., а "1239023234", "234as34yts78", понятно ли будет, что за товары вам предлагают?
|
|
29.10.2017, 15:40
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сообщение от laimas
|
Уверены в этом? А если реальный пример из жизни? Пришли вы в магазин, а на полках товары не с названиями "Конфеты", "Печенье", ..., а "1239023234", "234as34yts78", понятно ли будет, что за товары вам предлагают?
|
так если я смогу в принципе передать данные из JS скрипта на почту - то там же можно прописать все что угодно...
Например я пишу
alert("Стоимость пленки на витрину - " + sp);
При этом никто мне не мешает в зависимости от того же value в полях - объявить переменные, в которых я укажу например "Витрина размером 1м*2м". И там же выведу размер витрины, потом стоимость пленки, и так по все нужным данным.
Если я смогу передать это на почту - то дело сделано, как мне видится...
Вопрос в том как вставить это в письмо!
В php файле отправки, в самом начале задаются как я понимаю тоже переменные, в которых хранятся value полей.
т.е.
$size = $_POST['size'];
тут берется значение value из поля с именем size.
потом идет html тело письма, где я пишу Размер витрины - $size.
Если бы таким макаром можно было забрать данные не из поля, а просто из div.
|
|
29.10.2017, 15:43
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Кстати пришла одна мысль...
СОздать скрытый текстовый инпут, передать в него из скрипта нужные данные, а потом их из это поля вытащить в письмо...
гемор некоторый, но вроде рабочий вариант...
Главное чтобы в value текстового поля можно было передать информацию в таком виде
"Стоимость пленки на витрину - " + sp
|
|
29.10.2017, 16:17
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от the_little
|
При этом никто мне не мешает в зависимости от того же value в полях - объявить переменные, в которых я укажу например "Витрина размером 1м*2м".
|
Вот это уже в правильном направлении мысль. Сервер хранит данные, и для удобства оперирования ими, их проверки, данные структурируют. В случае с БД, данные зачастую хранятся под уникальными идентификаторами, в качестве которых зачастую используются числа. Числа потому, что с ними легче работать. Поэтому на клиенте, список формы может выглядеть так:
<select name="pattern">
<opton value=1>В горошек</option>
<opton value=2>В полоску</option>
<opton value=3>В клетку</option>
</select>
Сервер получив форму, проверив, что есть товар и под ключом pattern с выбранным значением 2 действительно возвращается его дизайн, помещает в тело письма "Ситец в полоску".
А 1, 2, 3, не пойдет. Как всякие sp, lp, если только это речь не о размерах одежды SSL и прочее, но и в БД этот размер не будет представлен значением этим, а скорее идентификатором (читайте о нормализации баз данных).
Если используется не БД, то плохо, но для "мелочи ограниченной", к примеру, пойдет, и данные должны быть описаны по тем же принципам как и в БД, и не потому, что "никто мне не мешает", а потому, что так легче оперировать данными как при выводе их пользователю, так и при их проверке.
Последний раз редактировалось laimas, 29.10.2017 в 16:20.
|
|
29.10.2017, 16:21
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от the_little
|
СОздать скрытый текстовый инпут, передать в него из скрипта нужные данные, а потом их из это поля вытащить в письмо...
|
Не надо мусора.
|
|
|
|