Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.07.2012, 17:27
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

PHP и jquery
Есть модальное окно, и есть php функция для просмотра картинок. Проблема в том , что я не могу их никак соединить ...
Мне нужно, чтобы в модальном окне выводилась фотка на которую кликнули. А при клики на фотку в модальном окне выводилась следующая картинка и т.д. Это аналогично Вконтакте.
http://vk.com/id64969895?z=photo64969895_283837685%2Falbum649698 95_0%2Frev
------------------------------------------------------------------
//php функция переключает фотки
$photo_id = $_GET['photo'];
	echo'<div class="album">';
	for($i=1; $i<25; $i++){
		 echo'<a href="photos.php?photo='.$i.'" name="window"><img src="photos/mini/'.$i.'.jpg" /></a>';		 
 	}
	echo'</div>';
	echo $photo_id;
	function photo_gallery($id, $max){
		$next = $id+1;
		$window_skillet = '
			<div class="window">'.
				'<div class="conteiner_content">'.
					'<div class="conteiner_info">'.
							'<a href="photos.php" class="close"></a>'.
					'</div>'.
					'<div class="content">'.
						'<div><a href="photos.php?photo='.$next.'"><img src="photos/'.$id.'.jpg" /></a></div>'.
					'</div>'.
				'</div>'.
			'</div>		
		';
		if($id>$max-1){echo'<div class="window"><a href="photos.php?photo=1">Начать заново</a></div>';}
		elseif($id==0){echo'<div class="window" style="display:none;"></div>';}
		else{echo $window_skillet;}
	}
	photo_gallery($photo_id, $i);

//javascript модальное окно
$(document).ready(function(){
	$('a[name=window]').click(function(){
		var id = $(this).attr('href');
		var content = $(id).html();
		var get_window = function(){
			var structure_window = 
							'<div class="window">'+
								'<div class="conteiner_content">'+
									'<div class="conteiner_info">'+
											'<a href="" class="close"></a>'+
											'Изображение '+id+
									'</div>'+
									'<div class="content" style="display:block;">'+
										'<div>'+content+'</div>'+
									'</div>'+
								'</div>'+
							'</div>';
			return structure_window;
		}
		$('body').prepend(get_window());
		$('.window').fadeIn();
		if($('.conteiner_content').height()+60>=$(window).height()){
			$('body').css({'overflow':'hidden','padding-right':'17px'});
		} else{
			$('body').css({'overflow':'auto'});
		}
		return false;	
	});
	$('.close').live('click', function(){		
		$('.window').remove();
		$('body').css({'overflow':'auto','padding':'0'});
		return false;
	});
});
Ответить с цитированием
  #2 (permalink)  
Старый 11.07.2012, 21:24
Аватар для zlodeeev
Кандидат Javascript-наук
Отправить личное сообщение для zlodeeev Посмотреть профиль Найти все сообщения от zlodeeev
 
Регистрация: 11.07.2012
Сообщений: 113

Вот так, но только надо бы photo.php подправить, флаг например добавить, чтобы если был клик по миниатюре - передавалось одно значение флага и соответсвенно выполнялась функция возвращающая ту самую структуру
$window_skillet = '
			<div class="window">'.
				'<div class="conteiner_content">'.
					'<div class="conteiner_info">'.
							'<a href="photos.php" class="close"></a>'.
					'</div>'.
					'<div class="content">'.
						'<div><a href="photos.php?photo='.$next.'"><img src="photos/'.$id.'.jpg" [B]class="big"[/B]/></a></div>'.
					'</div>'.
				'</div>'.
			'</div>		
		';


И аяксом подтянуть необходимое изображение вместе со структурой:

$.post("photos.php", { photo: $(this).attr('id')}    
function(data) {
     var structure_window = data;
   });


В итоге получим нечто подобное:
$(document).ready(function(){
	$('a[name=window]').click(function(){
		var id = $(this).attr('href');
		var content = $(id).html();
		var get_window = function(){
                $.post("photos.php", { photo: $(this).attr('id')}    
                function(data) {
                  var structure_window = data;
                });
		$('body').prepend(get_window());
		$('.window').fadeIn();
		if($('.conteiner_content').height()+60>=$(window).height()){
			$('body').css({'overflow':'hidden','padding-right':'17px'});
		} else{
			$('body').css({'overflow':'auto'});
		}
		return false;	
	});

        $('.big').click(function(){
           $.post("photos.php", { photo: $(this).attr('id')}    
             function(data) {
                $('div.window').html = data;
              });
        });

	$('.close').live('click', function(){		
		$('.window').remove();
		$('body').css({'overflow':'auto','padding':'0'});
		return false;
	});


});
Ответить с цитированием
  #3 (permalink)  
Старый 12.07.2012, 09:14
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

zlodeeev, я просто не пойму, как мне GET из php поместить в модальное окно на jquery. Просто страница перезагружается и jquery начинает работу заново. Если можно то принцип объясните.
Ответить с цитированием
  #4 (permalink)  
Старый 12.07.2012, 11:49
Аватар для zlodeeev
Кандидат Javascript-наук
Отправить личное сообщение для zlodeeev Посмотреть профиль Найти все сообщения от zlodeeev
 
Регистрация: 11.07.2012
Сообщений: 113

jeysmook,
Функция $.post() - передает параметры php файлу и ждет ответа переданного от него обратно. По сути,е сли пофантазировать, то можно представить, что не пользователь открывает страничку photo.php, а сам браузер незаметно от пользователя.

Вот мы и делаем
$.post("photos.php", { 
    photo: $(this).attr('id')}   // открываем photo.php?photo=*id фотографии, по которой был клик*
    function(data) { // после передачи запускаем функцию, в качестве ответа от photo.php будет переменная data
        $('div.window').html = data; // запихиваем, по сути всю страничку photo.php?photo=*id* в блок div.window
    }
);


Т.е. мы вставляем страницу photo.php в ту часть кода, где это нам необходимо, осталось только сделать photo.php таким образом, чтобы он выводил только структуру попапа вместе с самой картинкой и ссылкой на следующую, что у вас уже сделано.
Ответить с цитированием
  #5 (permalink)  
Старый 13.07.2012, 17:09
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

zlodeeev,
Спасибо большое , буду разбираться, по мере разбора буду задавать вопрос в этой теме )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать переменную с jquery в php Максим2 jQuery 14 28.07.2013 11:38
сформированный id через php и jquery SunYang Элементы интерфейса 1 12.04.2012 01:32
Необходимо передать переменную из php в функцию jQuery asp_ AJAX и COMET 4 08.01.2011 13:22
передача переменной из jQuery в PHP UpJump jQuery 3 03.11.2010 12:14
jquery, php, json… ? незнайка jQuery 4 06.02.2010 01:45