И все-таки, может есть вариант передать эту информацию с переносом строки?
В textarea же это выглядит как надо... А то создавать 10 скрытых инпутов не хочется. |
Цитата:
|
Цитата:
Передать значения переменных из JS скрипта на почту пользователя, с добавлением "поясняющего" текста. Чтобы человек на почту получил читабельный текст. В php я могу вставлять только произвольный текст (html) и value из полей. Соответсвенно сейчас я могу все необходимые мне переменные передать в <textarea> и потом отправить value на почту. Проблема в том что в <textarea> переносы на строку действуют, а после отправки все приходит в одну строку, что не удобно... JS document.getElementById("outtext").value = ( "Стоимость пленки: " + sp + "\nСтоимость проектора: " + pp + "\nСтоимость лазера: " + lp + "\nСтоимость WUXGA: " + w + "\nИсточник: " + ip + "\nКоммутация: " + cp + "\nКрепление: " + kp + "\nМонтаж: " + m ); HTML <textarea> Стоимость пленки: 22000 Стоимость проектора: 160000 Стоимость лазера: 400000 Стоимость WUXGA: 168000 Источник: 20000 Коммутация: 10000 Крепление: 12000 Монтаж: 79000 А на почте: Стоимость пленки: 22000 Стоимость проектора: 160000 Стоимость лазера: 400000 Стоимость WUXGA: 168000 Источник: 20000 Коммутация: 10000 Крепление: 12000 Монтаж: 79000 |
Цитата:
Это: Цитата:
|
Цитата:
|
для переменной "m" - 12 вариантов значений, в зависимости от значения 4-х селектов, по 3 значения в каждом.
Что я должен сделать, чтобы отправить посчитанную уже переменную по почте, при этом дав описание (по сути указав 1 из 12 значений). |
Цитата:
"Стоимость пленки: " + sp а к примеру не "Крепление: " + sp? Если на клиенте вы знаете чему что соответствует, то почему сервер не может знать? Если на клиенте можно что-то посчитать, основываясь на выборе пользователя, то почему посчитать не может сервер? Одна из святых обязанностей сервера, это проверка данных полученных извне. Если вместо данных сервер будет получать хлам типа: "Стоимость пленки: " + sp + "\nСтоимость проектора: " + pp + "\nСтоимость лазера: " + lp + ..... то для проверки таких данных придется попотеть. Такое можно формировать на клиенте исключительно для него же, если, к примеру, результат этого расчета будет предложено сохранить на клиенте средствами браузера минуя сервер. Вот тогда пожалуйста, что угодно пусть клиент творит, а далее его дело - хоть в рамочку и на стенку, хоть в ведро для мусора. Но вы то получаете эти данные на сервере, отправляете их почтой, что уже накладывает ответственность на вас как разработчика. Учтите, класс phpmailer не для устранения дыр, которые вы сознательно определяете своим подходом, этот класс всего лишь для грамотного оформления почтовых сообщений. А как, кому и что он будет отправлять определяете вы как разработчик. Сервер и только он является источником и владельцем данных. Им же определяются и условия, и эти условия могут только портироваться на клиент для использования их в клиентских сценариях, в тех же калькуляторах. Но портирование клиенту не означает, что сервер о них забывает и вообще далее все в руках клиента и сервер полностью ему доверяет. Я могу описать нечто из данных без базы таким образом: $data = [ 'figure' => [ 'head' => [ 'label' => 'Фигура', 'set' => 'Выберите фигуру', 'tpl' => 'Выбрана фигура' ], 'opt' => [ 1 => 'квадрат', 'круг', 'ромб' ] ], 'size' => [ 'head' => [ 'label' => 'Размер', 'set' => 'Выберите размер', 'tpl' => 'Выбран размер фигуры' ], 'opt' => [ 1 => 'большой', 'средний', 'малый' ], ], 'color' => [ 'head' => [ 'label' => 'Цвет', 'set' => 'Выберите цвет', 'tpl' => 'Цвет фигуры выбран' ], 'opt' => [ 1 => 'белый', 'черный', 'синий' ] ], ]; И по этим данным буду строить форму: <form> <?php foreach($data as $key=>$val) : ?> <div><label><?=$val['head']['label']?>:</label> <select required name="<?=$key?>"><option value=""><?=$val['head']['set']?></option> <?php foreach($val['opt'] as $k=>$v): ?> <option value="<?=$k?>"><?=$v?></option> <?php endforeach; ?> </select></div> <?php endforeach; ?> <button>Отправить</button> </form> Сервер получая форму, зная, что она должна прислать количество полей равных количеству элементов массива $data и все ключи массива данных этой формы должны соответствовать ключам массива $data, проверяет это условие. Если пользователь выберет в трех списках значение 2, может ли сервер знать что выбрано, и сформировать согласно принятому список, который основан на описании в массиве $data: Выбрана фигура: круг Выбран размер фигуры: средний Цвет фигуры выбран: черный ??? Наверное же это не будет для него проблемой. Вы думаете для него будет проблемой что-то и посчитать, если он знает, что цена за единица товара Т, идентификатор которого равен 15, равна 200 руб., а формой прислано под ключом 'goods' определяющем выбор товара, во вложении под ключом 15, значение равное 3, которое означает количество выбранного? Прежде чем писать приложения, а тем более многопользовательские и открытые "всем ветрам", нужно изучить способы хранения данных на сервере - почему так, а не иначе, с чем это связано и т.д. Не зная этого, вы ставите все с ног на голову. |
Часовой пояс GMT +3, время: 21:12. |