Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


942547

Recommended Posts

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

Надіслати
Поділитися на інших сайтах


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'],

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.