Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   json slider вопросы (https://javascript.ru/forum/jquery/29774-json-slider-voprosy.html)

S-27 10.07.2012 19:11

json slider вопросы
 
Вообщем внедряю я верстку, в которой присутствует эта радость. Происхождения я не знаю, да и просто связи с верстальщиком тоже нет. То есть работаю с тем что есть. А есть...как мне кажется не все.
Вот ссылка на страницу где работает этот слайдер - http://213.239.201.131/main.html

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

Вообще в данный момент, показывается сначала контент при загрузке а затем подгружается альтернативный через файл php.
Как подключить еще контент...я не знаю.
Так же, возможно из-за предыдушей проблемы поймать первоначальный контент который был при загрузке - невозможно.

Буду рад советам и помощи!
Спасибо!

cmd 10.07.2012 20:58

Вы действительно думаете, что эту работу должен был сделать верстальщик?

S-27 10.07.2012 21:32

ну да, контент ведь статический....

cmd 10.07.2012 23:16

Статичный? Тогда и ajax статичный, если запроса к базе данных нет.
Что-то я не встречал в своей жизни ещё ни одного верстальщика, которые знает javascript и jQuery. Это уже не верстка, а разработка интерфейса.

Да и вообще, я не понимаю как можно поручить верстальщику писать что-то на javascript. Он же не видит всей картины (js может использоваться в комментариях, корзине покупок, формах), что будет приводить к: 1) использованию конфликтующий js-библиотек, 2) использованию устаревших версий библиотек 3) использование неоптимальных сборок библиотек 4) использованию конфликтующих переменных.

Так что Ваша отмазка, мол "верстальщик не доделал" для меня звучит совершенно дика. А разработчик для чего тогда нужен?

Если по существу: не вижу в HTML никаких альтернативных рисунков и альтернативного контента. Наверно, его и нет. Но вижу в main.js какие-то ajax-запросы:

$.ajax({
				url:'/parts/item-content.php',
				data:{
					action:id
				},
				dataType:'json',
				success:function(data){
					slider.cache[index] = data;
					data.href = href;
					slider.animation(data);
				}
			})

.....................

		$.ajax({
				url:'/parts/help.html',
				data:{
					action: $(this).attr('href')
				},
				dataType:'html',
				success:function(data){
					$('#help .window-box').html(data);
				}
			});


И там ещё несколько.

Проверяйте наличие файлов. Проверяйте правильность пути... Делайте дебаг.

S-27 10.07.2012 23:52

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

в файле js что вы привели, все по сути скрипты собраны воедино...
есть вот такой файл php из кода, который вы привели:

$.ajax({
02
                url:'/parts/item-content.php',
03
                data:{
04
                    action:id
05
                }

<?php
if (!function_exists(' json_encode_cyr')){
	function json_encode_cyr($str) {
		$arr_replace_utf = array('\u0410', '\u0430','\u0411','\u0431','\u0412','\u0432',
		'\u0413','\u0433','\u0414','\u0434','\u0415','\u0435','\u0401','\u0451','\u0416',
		'\u0436','\u0417','\u0437','\u0418','\u0438','\u0419','\u0439','\u041a','\u043a',
		'\u041b','\u043b','\u041c','\u043c','\u041d','\u043d','\u041e','\u043e','\u041f',
		'\u043f','\u0420','\u0440','\u0421','\u0441','\u0422','\u0442','\u0423','\u0443',
		'\u0424','\u0444','\u0425','\u0445','\u0426','\u0446','\u0427','\u0447','\u0428',
		'\u0448','\u0429','\u0449','\u042a','\u044a','\u042d','\u044b','\u042c','\u044c',
		'\u042d','\u044d','\u042e','\u044e','\u042f','\u044f');
		$arr_replace_cyr = array('А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е',
		'Ё', 'ё', 'Ж','ж','З','з','И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о',
		'П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Ц','ц','Ч','ч','Ш','ш',
		'Щ','щ','Ъ','ъ','Ы','ы','Ь','ь','Э','э','Ю','ю','Я','я');
		$str1 = json_encode($str);
		$str2 = str_replace($arr_replace_utf,$arr_replace_cyr,$str1);
		return $str2;
	}
}
$html['content_l'] = '		<h2>2. Погружение с АКВАЛАНГОМ</h2>
							<p>Демократичность цен в Forza karting hall приятно радует. Но ещё больше порадует купон с 50% скидкой, воспользоваться которым можно будет до конца лета. Всего за 250 рублей Вы получите купон с номинальной стоимостью в 500 рублей. При этом вы можете купить до 30 купонов на одного человека! Приобретайте несколько купонов и составляйте свой собственный абонемент для посещения картодрома Forza!</p>
							<h3>Программа</h3>
							<ul>
								<li>Купон действует на один <strong>10-ти минутный заезд.</strong></li>
								<li>Один человек может использовать в <strong>день неограниченное количество купонов.</strong></li>
								<li>Ограничения: <strong>рост от 150 см., вес до 110 кг.</strong></li>
							</ul>
							<h3>Что нужно знать</h3>
							<ul>
								<li>Карты мощностью <strong>9 л.с.</strong></li>
								<li>Источник спортивных эмоций и адреналина</li>
								<li>Уютное кафе с видом на трассу</li>
								<li>Купон действует на один <strong>10-ти минутный заезд .</strong></li>
								<li>Один человек может использовать в день <strong>неограниченное количество купонов</strong></li>
							</ul>';



$html['content_r'] = '
								<a class="button-bay" href="#76"><span class="buy-right">1200 р. <span>купить</span></span></a> 
								<p class="short-info">
									<strong>Партнер:</strong> FORZA karting hall <br>
									<strong>Продолжительность:</strong> 20 минут<br>
									<strong>Количество участников:</strong> 1
								</p>
								<div class="prichina">
									<p class="title">3 причины</p>
									<p class="sub-title">купить этот подарок</p>
									<ul>
										<li><span class="number">1</span><span>Современные мощные карты от датской компании DINO</span></li>
										<li><span class="number">2</span><span>FORZA картинг является одной из самых «навороченных» московских трасс</span></li>
										<li><span class="number">3</span><span>Вы можете активировать услугу для 2х человек прямо на месте</span></li>
									</ul>
								</div>
								<div class="docs">
									<p class="title">Сомневаетесь?</p>
									<p>Убедитесь что сможете получить впечатление по сертификату в удобное для Вас время, Позвоните нашему партнеру: <strong>Forza Karting hall</strong> <span class="phone">745-6565</span></p>
									<p>Скажите что у Вас есть "Подарочный сертификат "Магазина Впечатлений" и забронируйте время для получения впечатления. </p>
								</div>
	';
$html['img'] = 'images/basket.jpg';
if($_GET['action'] == 'id-2 link'){
	$html['menuindex'] = 1;
}else{
	$html['menuindex'] = 0 ;
}

echo json_encode_cyr($html);
?>


вот после загрузки странице...его и выплевывает скрипт и постоянно обновляет...

cmd 11.07.2012 03:46

Ага... Так а в чем Вы сильны? php? Вот Вы привели php код. Если его выплевывает, то с ним и работайте. Во-первых, я бы сразу зарубил кириллицу и перешел на utf-8. Во-вторых, посмотрите какие параметры принимает переменная $_GET['action'] или $_POST['action']. Если параметры разные и соответствуют пунктам меню, то просто пишите условие switch и дело с концом.

S-27 11.07.2012 10:58

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

если я не прав, поправьте плиз...итак..
файл url:'/parts/item-content.php'
читаю - при условии происходит перекодировка, за тем условие...если была активирована "id-2" то $html['menuindex'] = 1; получает значение нет, иначе - 0.
И вывод на страницу того что получилось.

то есть в идеале вы советуете используя оператор switch вывести все 6 вариантов в этом файле. По поводу зарубки кириллицы, я вообще не знаю как это сделать.

В любом случае спасибо что не безучастны!

cmd 11.07.2012 14:46

Цитата:

то есть в идеале вы советуете используя оператор switch вывести все 6 вариантов в этом файле.
При условии, что action действительно передает разные id. Это надо проверить.

Цитата:

По поводу зарубки кириллицы, я вообще не знаю как это сделать.
Нахер убрать функцию json_encode_cyr, перекодировать файл в utf-8 без ВОМ, в конце вызов json_encode вместо json_encode_cyr и в шапке файла добавить
<?header('Content-Type: text/html; charset=UTF-8');?>
для полного фарша

S-27 11.07.2012 14:53

Цитата:

Сообщение от cmd (Сообщение 188060)
При условии, что action действительно передает разные id. Это надо проверить.

а как это можно проверить?) тупой вопрос конечно...


не знаю, может я не там ищу...но я удалил
if($_GET['action'] == 'id-2 link'){
	$html['menuindex'] = 1;
}else{
	$html['menuindex'] = 0 ;
}

скрипт продолжает работать без изменений.
И еще...он не меняет картинку...если блоки html он обновляет...то картинку нет

zlodeeev 11.07.2012 15:29

Вот что нашел:
Цитата:

Notice: Undefined index: action in /var/www/serg/data/www/my.ru/parts/item-content.php on line 63
{"content_l":"\t\t
Ищите ошибки в нём, хотя какой то контент этот php отдаёт, но он на древнемонгольском.


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