Передача результата функции jquery на другу страницу
Доброго времени суток, есть такой вопрос, на который не нашел ответа (или не понял). Написал калькулятор на одной странице, он должен отправлять значения input-ов в смету. Если смета находится в том же файле то все работает нормально, а если смета в другом файле, то функции уже не действуют, так как работают только на текущей странице. Выносить смету в другой файл надо из-за программы, которая делает из сметы pdf файл. wkhtmltopdf. Как можно передать результат функции с калькулятора на страницу сметы? Не знаю, какой код надо прикреплять, чтобы было понятнее.
|
А отправкой формы почему нельзя?
|
Допустим я формой передам одно значения, а в функциях лежат вычисления и результаты, их тоже можно передать формой?
|
Цитата:
Цитата:
|
Можно пример?)
$(".btn_next").click(function (){ var guest = $(".s_data").val(); $('.v_data').val(guest); }); Вот самая простая функция с калькулятора |
Цитата:
$(".btn_next").click(function (){ var guest = $(".s_data").val(); top.location='http://mysite?prm='+guest; }); |
Если .val(), это уже поле формы, зачем только из одного поля .s_data переписывать его в другое .v_data не совсем понятно.
Пример чего надо, если этого достаточно. Все просто - все что надо передать на сервер помещайте в поля формы, если надо то можно и в скрытые. Никто кроме вас не знает чего вы считаете, и что нужно передать, а что гадать нет смысла. |
ksa,
проще готовую форму отослать без всяких формирований URL. |
laimas, х/з чего ТСу будет проще... Может в итоге он вообще запрос будет слать с той страницы...
|
Ну если калькулятор, то вопрос - что он считает? Наверное же по выбору каких-то параметров. А если так, то это тоже элементы формы. А если их как выбор пользователя тоже в итоговом документе нужно отразить наряду с результатом/результатами расчета, то зачем готовое к оправке перемещать в URL?
Пусть показывает что к чему, иначе... |
Это на первой странице
<ul class="data_wrap"> <li class="data">Дата (ориентировочно)</li> <li><input type="date" name="data" class="s_data"></li> </ul> Это на второй <input type="text" name="vdata" id="v_data"> value должно передаваться из одного инпута в второй функцией |
Что значит это на первой, а это на второй?
Если вам надо на второй странице к принятым данным формы из первой страницы еще что-то добавить, то это уже не имеет отношение к калькулятору. Добавляйте, какие проблемы, форму от калькулятора то вы получили уже. |
Попробую яснее.
Есть калькулятор из 5 шагов (index.php), в нем клиент клацает на инпуты, вот ссылка http://new.igrology.com/ так же есть файл сметы (smeta.php), в которую заносятся данные инпутов с калькулятора. В конце шагов в калькуляторе, файл сметы с введенными данными конвертируется в пдф и оправляется клиенту на почту. Так вот, функция передачи значения инпута не видит файл сметы, как это можно решить |
У вас пошаговый сбор информации, но нет формы.
Элементы формы можно описывать и вне ее тега, то есть, если не удобно так в верстке: <form> секции с элементами формы </form> то можно и так: секции с элементами формы, и у элементов указывается связь с формой как form="идентификатор формы" <form id="идентификатор формы" action="url передачи"><button>Оправить</button></form> - разместив этот код где удобно, в конце всей баталии (заполнения) к примеру. Заполнили форму, отправили, на странице получателе получили. |
Через просто action получается, но страница перезагружается. А через ajax страница не перезагружается но смета не получает данные
$("#up1").submit(function(e) { e.preventDefault(); var up1 = $(this).serialize(); $.ajax({ type: "POST", url: "../smeta.php", data: up1, success: function(){ } }); }); |
Если вам надо асинхронным запросом передать форму, то data: $(this).serialize(), это и есть ее передача. Вот только в коде я не видел тега формы (хотя не углублялся сильно). Но если она есть, и отправляется, то либо "../smeta.php" неверный, либо на на сервере в smeta.php проблемы. Отладчик же в браузере есть, проверить то можно.
|
Проверил ваши запросы - первый асинхронный запрос не отправляет параметров, второй только форму с личными данными, причем не проверяя ничего. Разберитесь с формами - если выбор и личные данные, это две формы, значит нужно либо "склеить" их данные, либо, что проще, иметь одну форму, у вас же все на одной странице.
|
а в функции нельзя что то такое указать, что бы она увидела в какой файл должно переходить value? так было бы проще
|
Какой функции? Можно конечно получить коллекцию всех полей ввода на странице, обойти эту коллекцию циклом, получить их значения и имена, и сформированные данные отправить.
Но разве не проще сделать простое - перенести открывающий тег формы личных данных до первого поля выбора? И достаточно будет $(this).serialize(). |
вроде понял) спасибо)
|
Можно же и так. У вас форма отправления личных данных имеет идентификатор sendpdf. Добавьте всем полям выбора значений атрибут form="sendpdf" и они будут отправляться с этой формой. Открывающий тег формы переносить не надо.
|
Часовой пояс GMT +3, время: 14:35. |