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



 

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

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

Открыть тему
Тема закрыта
> Javascript - изменять данные на лету - Нетривиальная задача
reds
reds
Topic Starter сообщение 24.12.2014, 17:33; Ответить: reds
Сообщение #1


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

Нужно поменять name: "Первая услуга (3000)" на значение поля _POST[your-usluga]
order_price: 3000, и price на если 1-я услуга - 3000, если вторая - 1000

Возможно ли это вообще?

Javascript, который есть на странице, нужно менять некоторые значения:

<script type="text/javascript">
var yaParams = {
order_id: "1",
order_price: 3000,
currency: "RUR",
exchange_rate: 1,
goods:
[
{
id: "1",
name: "Первая услуга (3000)",
price: 3000,
quantity: 1
}
]
};
</script>


Форма отправки:

<div class="wpcf7" id="wpcf7-f111-p532-o1" dir="ltr">
<div class="screen-reader-response"></div>
<form name="" action="/kontakt?preview=true&preview_id=532&preview_nonce=7b8aa709ce#wpcf7-f111-p532-o1" method="post" class="wpcf7-form" novalidate="novalidate">
<div style="display: none;">
<input type="hidden" name="_wpcf7" value="111" />
<input type="hidden" name="_wpcf7_version" value="4.0.3" />
<input type="hidden" name="_wpcf7_locale" value="" />
<input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f111-p532-o1" />
<input type="hidden" name="_wpnonce" value="7b7fb4db91" />
</div>
<p>Ваше имя (обязательно)<br />
<span class="wpcf7-form-control-wrap your-name"><input type="text" name="your-name" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" /></span> </p>
<p>Ваш E-Mail (обязательно)<br />
<span class="wpcf7-form-control-wrap your-email"><input type="email" name="your-email" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-email wpcf7-validates-as-required wpcf7-validates-as-email" aria-required="true" aria-invalid="false" /></span> </p>
<p>Выбрать услугу<br />
<span class="wpcf7-form-control-wrap your-usluga">
<select name="your-usluga" class="wpcf7-form-control wpcf7-select" aria-invalid="false">
<option value="Первая услуга (3000)">Первая услуга (3000)</option>
<option value="Вторая услуга (1000)">Первая услуга (1000)</option>
</select></span></p>
<p>Сообщение<br />
<span class="wpcf7-form-control-wrap your-message"><textarea name="your-message" cols="40" rows="10" class="wpcf7-form-control wpcf7-textarea" aria-invalid="false"></textarea></span> </p>
<p><input type="submit" onclick="yaCounter26528022.reachGoal('orderblog', yaParams); return true;" value="Отправить" class="wpcf7-form-control wpcf7-submit" /></p>
<div class="wpcf7-response-output wpcf7-display-none"></div></form></div>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
сообщение 24.12.2014, 19:24; Ответить: k0ttee
Сообщение #2


происходить на лету

Событием OnChange отслеживаем изменения.
Можно и отправлять сразу (без нажатия кнопки сабмит) - в том же ОнЧендж делать submit без кнопки.
document.forms["myform"].submit();

jQuery можно или чистым javascript?

поменять name: "Первая услуга (3000)" на значение поля _POST[your-usluga]

Берем значение your-usluga (это у вас select), из него можно получать: value / номер выбранного пункта / текст выбранной опции - http://web-answers.ru/questions-and-ans ... -v-select/
И подставляем полученное значение куда хотим.

Возможно ли это вообще?

Пока не очень въехал что куда перепилить, но думаю да. И даже если невозможно - изобретем велосипед.

P.S: с гугля программисты набегут по запросу "нетривиальная задача" :hihi:


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
reds
reds
Topic Starter сообщение 24.12.2014, 22:42; Ответить: reds
Сообщение #3


Ага, я по твоему совету добавил в заголовок, для прикола.

Нужно вставлять сюда - "order_price: 3000, ", вместо 3000. Для innerhtml нужен id или class, здесь этого нет, поэтому не знаю за что взяться, наверное нужно полностью первый скрипт генерировать после получения данных, этого я не могу сделать, так как запутаюсь как часть данных в чистом виде вывести, а часть как результат js, чтобы на выходе получился скрипт как первый, без тегов.

Добавлено спустя 21 минуту 34 секунды:
Re: Javascript - изменять данные на лету -Нетривиальная задача:)
Решил сделать с перезагрузкой страницы, данные брать через php, который чуть больше понимаю чем js. Если что буду здесь вопросы задавать, ок?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
сообщение 25.12.2014, 3:03; Ответить: k0ttee
Сообщение #4


Для innerhtml нужен id или class, здесь этого нет, поэтому не знаю за что взяться

Json тоже можно ковырять, на то есть метод:
JSON.parse()

Правда код превратится в страшноватый на вид https://developer.mozilla.org/ru/docs/W ... JSON/parse

Потом подставлять новое значение одним из вариантов:
jsondata["goods"]["name"] = value;
jsondata["goods"].name = value;

Или свою функцию написать. Я тоже не с потолка беру :D http://javascript.ru/forum/misc/13501-k ... -json.html

буду здесь вопросы задавать, ок?

Океище! :friends: В программировании каждый сходит с ума по своему...


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
reds
reds
Topic Starter сообщение 26.12.2014, 5:06; Ответить: reds
Сообщение #5


Вернулся к js, с php свои проблемы - повторная отправка + каптчу надо ставить, так что чем там проблемы решать, лучше здесь разобраться, но без твоей помощи никак.

Во третьей и четвертой строчке код, который вносит данные формы в переменные, как теперь переменную your-name вставить вместо 1234? Что писать вместо 1234, если в php я бы вписал так: <?php echo $your-name;?>? Или оно вместе с тегами передастся?

<script type="text/javascript">
$('#button').on('click', function() {

var your-name = $('input[name="your-name"]').val();
var revenue = $('input[name="your-usluga"]').val();

//Активация плагина
ga('require', 'ecommerce');

//Добавление транзакции
ga('ecommerce:addTransaction', {
  'id': '1234',
  'affiliation': 'Magaz',
  'revenue': '1000',
  'shipping': '',
  'tax': ''
});

//Добавление товаров
ga('ecommerce:addItem', {
  'id': '1234',                     // Transaction ID. Required.
  'name': 'Fluffy Pink Bunnies',    // Product name. Required.
  'sku': 'DD23444',                 // SKU/code.
  'category': 'Party Toys',         // Category or variation.
  'price': '1000',                 // Unit price.
  'quantity': '1'                   // Quantity.
});

//Отправка
ga('ecommerce:send');
}
</script>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
сообщение 26.12.2014, 8:09; Ответить: k0ttee
Сообщение #6


Просто подставить в коде переменную. То есть это
'id': '1234',

Заменить этим (встречается в коде в двух местах)
'id': your-name,


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


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1246 24.11.2023, 14:46
автор: alexey
Открытая тема (нет новых ответов) Спарсить данные с сайта
2 EvilGomel 1121 17.8.2023, 9:37
автор: bobmen
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44951 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Восстановить сайт + добавить исходные данные
5 Portsmouth 1993 21.5.2023, 7:23
автор: Skyworker
Открытая тема (нет новых ответов) Спарсить данные с сайта
2 TABAK 1034 22.4.2023, 19:49
автор: TABAK


 



RSS Текстовая версия Сейчас: 26.4.2024, 9:04
Дизайн