Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 29.10.2017, 18:04
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

И все-таки, может есть вариант передать эту информацию с переносом строки?
В textarea же это выглядит как надо...
А то создавать 10 скрытых инпутов не хочется.
Ответить с цитированием
  #22 (permalink)  
Старый 29.10.2017, 18:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от the_little
И все-таки, может есть вариант передать эту информацию с переносом строки?
Откуда и куда, и зачем?
Ответить с цитированием
  #23 (permalink)  
Старый 29.10.2017, 18:23
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от laimas Посмотреть сообщение
Откуда и куда, и зачем?
Задача:
Передать значения переменных из 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
Ответить с цитированием
  #24 (permalink)  
Старый 29.10.2017, 18:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от the_little
Передать значения переменных из JS скрипта на почту пользователя, с добавлением "поясняющего" текста.
Не надо ничего кроме значения полей формы передавать на сервер, и об этом вам уже твердят несколько постов подряд. Связывайте поля формы с определениями на сервере и формируйте что угодно.

Это:

Сообщение от the_little
document.getElementById("outtext").value =
    (
        "Стоимость пленки: " + sp +
        "\nСтоимость проектора: " + pp +
        "\nСтоимость лазера: " + lp +
        "\nСтоимость WUXGA: " + w +
        "\nИсточник: " + ip +
        "\nКоммутация: " + cp +
        "\nКрепление: " + kp +
        "\nМонтаж: " + m
    );
может быть полезно только на стороне клиента для его информирования. Для сервера же эта хрень не нужна и является для не только мусором, но и проблемой.
Ответить с цитированием
  #25 (permalink)  
Старый 29.10.2017, 19:34
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от laimas Посмотреть сообщение
Не надо ничего кроме значения полей формы передавать на сервер, и об этом вам уже твердят несколько постов подряд. Связывайте поля формы с определениями на сервере и формируйте что угодно.

Это:



может быть полезно только на стороне клиента для его информирования. Для сервера же эта хрень не нужна и является для не только мусором, но и проблемой.
не понимаю. чтобы связать значения value с чем то вразумительным - нужно еще один калькулятор на сервере написать?
Ответить с цитированием
  #26 (permalink)  
Старый 29.10.2017, 19:37
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

для переменной "m" - 12 вариантов значений, в зависимости от значения 4-х селектов, по 3 значения в каждом.
Что я должен сделать, чтобы отправить посчитанную уже переменную по почте, при этом дав описание (по сути указав 1 из 12 значений).
Ответить с цитированием
  #27 (permalink)  
Старый 29.10.2017, 21:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от the_little
не понимаю. чтобы связать значения value с чем то вразумительным
А на каком основании вы пытаетесь втюхать серверу:

"Стоимость пленки: " + 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, которое означает количество выбранного?

Прежде чем писать приложения, а тем более многопользовательские и открытые "всем ветрам", нужно изучить способы хранения данных на сервере - почему так, а не иначе, с чем это связано и т.д. Не зная этого, вы ставите все с ног на голову.

Последний раз редактировалось laimas, 29.10.2017 в 21:29.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery - Конфликт функций при отправке формы по ajax Belka AJAX и COMET 5 20.06.2015 02:15
плавный скролинг при нажатии кнопки на форме sones Элементы интерфейса 14 23.03.2015 20:32
изменение значения input при смене значения select galart jQuery 4 30.01.2015 19:39
Onchange при изменении значения из скрипта. abstract Events/DOM/Window 9 01.03.2011 23:10
При отправке POST-запроса в заголовке к серверу вместо POST указывается OPTIONS VasiliyLuka AJAX и COMET 1 14.12.2009 14:57