Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Как добавить JS к конкретному товару?


942547
 Поделиться

Рекомендованные сообщения

Пытаюсь вывести в описании графики Google Charts. Подключил в footer свой скрипт charts.js, всё работает, но стоит инициализировать графики не для одного товара, а для для нескольких, графики не выводятся. Делаю вывод — нужно вставлять свой js для каждого товара отдельно. Искал готовые модули — не нашёл. Может кто подскажет, в какую сторону копать?

Ссылка на комментарий
Поделиться на других сайтах


ну а если не возможно, то (ну я лично так делаю) сделать поле текстареа с mvc и полем в бд. если более подробно опишите, то может с id прокатит

Ссылка на комментарий
Поделиться на других сайтах


942547, как пример. 

var data = google.visualization.arrayToDataTable([ ['Label', 'Value'], ['Gas', 80], ['Oil', 55], ['Аmperage', 68] ]);

группу атрибутов можно разделить по id. можно 1 из групп прокатить по этому коду. вариантов много

Ссылка на комментарий
Поделиться на других сайтах


Miha7685776, не знаю, поможет это или нет.

Сейчас у меня примерно такая структура

google.charts.load('current', { 'packages': ['corechart', 'geochart', 'calendar', 'table'], 'language': 'ru' });

//Товар 1
google.charts.setOnLoadCallback(data1); // Инициализация
google.charts.setOnLoadCallback(data2); // Инициализация
...

//Товар 2
google.charts.setOnLoadCallback(data3); // Инициализация

function data1() {
	var data = google.visualization.arrayToDataTable([
		['Рекламный инструмент', 'Дневной бюджет', { role: 'style' }],
		['Facebook', 300, '#888'],
		['Google Adwords', 300, '#666'],
		['Одноклассники', 500, '#f90'],
		['Яндекс Директ', 300, '#444'],
		['ВКонтакте', 300, '#222'],
	]);
	var view = new google.visualization.DataView(data);
	view.setColumns([0, 1, {
			calc: 'stringify',
			role: 'annotation',
			sourceColumn: 1,
			type: 'string',
		},
		2
	]);

	var data1 = new google.visualization.ColumnChart(document.getElementById('data1'));
	data1.draw(view, options);
}



function data2() {
	var data = google.visualization.arrayToDataTable([
		['Рекламный инструмент', 'Дневной бюджет', { role: 'style' }],
		['Facebook', 300, '#888'],
		['Google Adwords', 300, '#666'],
		['Одноклассники', 500, '#f90'],
		['Яндекс Директ', 300, '#444'],
		['ВКонтакте', 300, '#222'],
	]);
	var view = new google.visualization.DataView(data);
	view.setColumns([0, 1, {
			calc: 'stringify',
			role: 'annotation',
			sourceColumn: 1,
			type: 'string',
		},
		2
	]);

	var data2 = new google.visualization.ColumnChart(document.getElementById('data2'));
	data2.draw(view, options);
}



function data3() {
	var data = google.visualization.arrayToDataTable([
		['Рекламный инструмент', 'Дневной бюджет', { role: 'style' }],
		['Facebook', 300, '#888'],
		['Google Adwords', 300, '#666'],
		['Одноклассники', 500, '#f90'],
		['Яндекс Директ', 300, '#444'],
		['ВКонтакте', 300, '#222'],
	]);
	var view = new google.visualization.DataView(data);
	view.setColumns([0, 1, {
			calc: 'stringify',
			role: 'annotation',
			sourceColumn: 1,
			type: 'string',
		},
		2
	]);

	var data3 = new google.visualization.ColumnChart(document.getElementById('data3'));
	data3.draw(view, options);
}

 

А это внутри описания товара:

<h3>Товар 1</h3>

<p>График 1</p>
<div id="data1"></div>

<p>График 2</p>
<div id="data2"></div>

 

Что бы графики начались выводиться в Товаре 2, приходится комментировать эти строчки инициализации

//Товар 1
google.charts.setOnLoadCallback(data1); // Инициализация
google.charts.setOnLoadCallback(data2); // Инициализация

Я, можно сказать новичок в программировании, по этому вообще не вдупляю фразу « прицепить id товара »... Не могли бы вы рассказать подробнее об этом, эсли конечно нет новых вариантов...

Ссылка на комментарий
Поделиться на других сайтах


ну скажем позиция товаров 1000

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

выводить в цикле. может есть другие варианты. 

подточить немного и будет работать как часы

['Рекламный инструмент', 'Дневной бюджет', { role: 'style' }],
['Facebook', значение1, '#888'],
['Google Adwords', значение2, '#666'],
['Одноклассники', значение3, '#f90'],
['Яндекс Директ', значение4, '#444'],
['ВКонтакте', значение5, '#222'],
Изменено пользователем Miha7685776
Ссылка на комментарий
Поделиться на других сайтах


Miha7685776, Ничего себе круто как можно сделать! С Атрибутами очень интересный вариант. Я бы даже $отблагадарил$, если вы мне поможете это реализовать. Только скажите что делать.

Ссылка на комментарий
Поделиться на других сайтах


Miha7685776, Только тогда мне нужно рассказать некоторые особенности. В разных товарах какие-то графики будут, а какие-то нет. Так же и с данными (атрибутами).

Ссылка на комментарий
Поделиться на других сайтах


я не спал)). если скажу, ты поймешь, но не сделаешь сам. иначе не писал-бы сюда. делаем в таблице товара 5 полей. в админке вносим\меняем а на фронте выводим). и логично и просто

будет типа

['Facebook',, '#888'],
['Google Adwords', , '#666'],
['Одноклассники', , '#f90'],
['Яндекс Директ', , '#444'],
['ВКонтакте', , '#222'],

 

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.