Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как подгрузить картинку с другой страницы и вставить (https://javascript.ru/forum/misc/71034-kak-podgruzit-kartinku-s-drugojj-stranicy-i-vstavit.html)

laimas 20.10.2017 21:01

Цитата:

Сообщение от EvgenStor
Это сервер CMS, и база хранится на сервере.

Нет CMS серверов, это вы используете CMS, и доступ к своему серверу у вас есть, иначе бы и js вы бы не могли изменить. Следовательно нужно всего лишь определить в шаблоне вывод изображения по умолчанию. Получается что вы не знаете как это сделать, только лишь всего, и туманите мозги. :)

Проблема в том, что как я понял изображения нужно вставить в html-код корзины. Но она то на всех страницах есть, а изображения источники только на конкретных страницах. Например, находимся на странице 2, узнаем что изображения нет, нечто вставляем. А как с другими товарами корзины, например со страниц 1 и 3, на которых тоже нет изображений?

Или не так понятно?

EvgenStor 20.10.2017 21:36

Это сервер + CMS на ней, они не разделимые, называется ucoz. Так понятней :)
доступ к своему серверу у вас есть
Нет полного доступа :) , в основном только через CMS и хранилище под личные файлы, поверьте на слово!

js вы бы не могли изменить
JS вставляется в шаблоны страниц

как я понял изображения нужно вставить в html-код корзины. Но она то на всех страницах есть
Неправильно поняли, с той корзиной которая на всех страницах, как раз таки проблем нет, там я сделал все как надо, и фото показываются.

А вот когда переходишь на страницу корзины (страница оформления заказа), вот там то доступа к содержимому нет, как я писал выше выводится оператором.

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

laimas 21.10.2017 03:27

Цитата:

Сообщение от EvgenStor
называется ucoz. Так понятней

Это хост полуобрубок, есть такое. Остается выразить вам искреннее соболезнование. Но тем не менее, не мутите мозги. :)

Цитата:

Сообщение от EvgenStor
Просишь помочь скрипт написать по исходным данным, а в ответ получаешь кучу советов

Прежде чем советовать, нужно выяснить, это а. А то что вы пишите в прямом смысле физически невозможно, это б.

Еще раз, а тем более о полной корзине речь: пользователь на странице корзина, страницы товаров недоступны, каким образом можно с них получить изображения?

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

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

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

То есть у вас два выхода из предложенных. Вопрос - как связать "место" в корзине с картинками товаров?

Nexus 21.10.2017 14:48

Цитата:

Сообщение от EvgenStor
Получается то наоборот, что вы мне туманите мозги.
Просишь помочь скрипт написать по исходным данным, а в ответ получаешь кучу советов . Если бы это можно было без скрипта сделать, я бы тут не задавал вопросы.

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

Раз уж реализовать этот правильно нельзя, то нужно хотя бы нагрузку на сервер уменьшить.
Попробуйте этот код:
$('#order-table > div').each(function(){
	var $this=$(this),
		$img=$this.find('>div:eq(1) img[src=""]'),
		$link=null,
		src=null;
	
	if(!$img.length)
		return;
	
	$link=$this.find('>div:eq(2) a');
	
	if(!!src=storage_get_img_src($link.attr('href')))
		return $img.attr('src',src);
	
	(function($img,$link){
		$.get($link.attr('href'),function(html){
			var src=$(html).find('img[alt="'+$link.text()+'"].link-photo');
			if(!src.length)
				throw new Error('Image not found');
				
			storage_set_img_src($link.attr('href'),src);
			$img.attr('src',src);
		});
	})($img,$link);
});

function storage_get_img_src(url){
	if(!window.localStorage)
		return null;
		
	return localStorage.getItem(url);
}
function storage_set_img_src(url,src){
	if(!window.localStorage)
		return false;
	
	localStorage.setItem(url,src);
	
	return true;
}


Часовой пояс GMT +3, время: 10:13.