Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.05.2011, 16:38
Интересующийся
Отправить личное сообщение для THER1ON Посмотреть профиль Найти все сообщения от THER1ON
 
Регистрация: 24.05.2009
Сообщений: 19

Сообщение от dmitriymar
ajax-получаешь название файла и путь и меняешь в теге img на него.хотя по сути дела и аякс не нужен если изображений не сотня
изображений будет over 9000
0931454574, я вообще не понял, о чём ты говоришь. я же сверху максимально подробно расписал, как в итоге должно всё работать. причём тут анимации и прозрачность?
изображение. на него кликаешь - загружается другое, рандомное, из директории. без перезагрузки всей страницы. как сделать?
Ответить с цитированием
  #12 (permalink)  
Старый 13.05.2011, 16:56
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

AJAX'ом обращаешься к PHP скрипту который прочитает имя рандомного файла из директории и вернет его. В JS меняешь путь на новый полученный.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #13 (permalink)  
Старый 13.05.2011, 21:29
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

Сегодня - завтра напишу код, посмотришь, а анимация для эффекта) но можно без нее, короче утром посмотришь!
__________________
XYZ
Ответить с цитированием
  #14 (permalink)  
Старый 13.05.2011, 23:20
Интересующийся
Отправить личное сообщение для THER1ON Посмотреть профиль Найти все сообщения от THER1ON
 
Регистрация: 24.05.2009
Сообщений: 19

walik,
спасибо, что структурировал всё! я сегодня пока по своим делам ходил, мысленно пришёл примерно к такому же решению...
0931454574,
искренне благодарю тебя! это было бы просто супер. Может быть потом, когда обкатаем его, отшлифуем, выложишь на какойнить sourceforge или ещё куда) мне кажется, многим бы пригодилось!
а по поводу эффектов я даже не думал, по скольку не рассчитывал, что найдётся кто-то, кто согласится помочь. но если бы добавить fade для плавности, было бы ваще карамельно)
Ответить с цитированием
  #15 (permalink)  
Старый 14.05.2011, 14:26
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

И так сам php файл.

Он делает следующее.
Считывает все файлы из директории
Создает файл с именами и числом файлов
Делает рандомайз и отвечает запросу.

<?php

											// путь к директории с файлами
$dir = "image/";

											// счетчик количества файлов


											// Открыть заведомо существующий каталог и начать считывать его содержимое, после желательно записать
											// все в отдельный txt файл, чтобы потом его содержимое занести в массив, который будет формироваться и рендомайзится
											// после того как залиты новые фото нужно запустить эту функцию и все файлы будут занесены в текстовый файл

											// проверка на необходимость проверять на наличие новых фалов

											
											// проверка существования директории
if (is_dir($dir)) {
											// проверка возможности и открытие директории
    if ($dh = opendir($dir)) {
	
											// удаляем файл , для того чтобы не дублировать имена
			unlink('name.txt');
			
											//  записываем все имена файлов в переменную $file пока есть файлы
        while (($file = readdir($dh)) !== false)
		{

			$count++;
											// записываем все в txt файл из которого потом будем брать имя в рандомайзе            			 
			write_new_name($file);
        }
										
											// закрытие директории после чтения
        closedir($dh);
		//echo $count;
		random_image_scr($count);
    }
}

											//запись имен файлов в тхт файл
function write_new_name($file)
{
											// Считаем сколько файлов
	

												//новые записи добавляются в существующий файл
	$f = fopen('name.txt','a+');
	$file = "$file\r\n";
	fwrite($f,$file);
	fclose($f);
											// закрывать файл функцией fclose не обязательно, но рекомендуется
	
											
											// возвращает true если все прошло ок.
	return true;
}

											// РАНДОМАЙЗ ВЫБОРА ИЗОБРАЖЕНИЯ
function random_image_scr($count)
	{
 
		 $lines = file('name.txt');  // теперь в $lines массив строк файла
		 $i = ($lines[count($lines)]); // выводим последнюю строку
		 
		 $r= mt_rand(3,$count);				//делаем рандомайз в нужном диапазоне.
		 $name_file = $lines[$r]; 
 
		 $name_file="image/".$name_file;
		 echo $name_file;

	}


?>



Теперь сам html

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


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<TITLE>0931454574.blogspot.com</TITLE>
 
<META name="content-Type" content="text/html; charset=windows-1251">
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"  type="text/javascript"></script>
<script>
 $(document).ready(function()
{
	 
$.post("random.php", { name: "John", time: "2pm" },  // это я к тому что можно параметром что то передать, например нужную директорию и т.д.
  function(data){
    alert("Data Loaded: " + data);
	
	
	$("#images").attr("src",data);
  });

});
</script>
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
</head>
<body>
<img src="image/1.jpg" id="images">
 
</body>
</html>


100% все работает. Так что скажи. это то что нужно ???
__________________
XYZ

Последний раз редактировалось 0931454574, 14.05.2011 в 14:29.
Ответить с цитированием
  #16 (permalink)  
Старый 14.05.2011, 14:50
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

0931454574,
начни учить нормально тотоже рнр -не по курсам попова и ему подобных
Ответить с цитированием
  #17 (permalink)  
Старый 14.05.2011, 14:56
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

А зачем имена фалов записывать в другой фал, а потом считывать в этом же скрипте, если можно записать их в переменную ?
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #18 (permalink)  
Старый 14.05.2011, 15:02
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

dmitriymar,
walik,
Ребята, во первых я сделал то что работает как нужно, во вторых небыло времения делать все проверки и т.д. в третьих не попОв ,а гугл и в четвертых не в переменную, потому как можно все взять в функции и запускать после проверки запроса, например каждый раз делать список файлов глупо, лучше запускать функцию создания списк имен когда добовляются новый картинкию, вот атк
__________________
XYZ
Ответить с цитированием
  #19 (permalink)  
Старый 14.05.2011, 15:13
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

$dir = "/image";
$dh  = opendir($dir); 
$images = scandir($dir, 1);
$image = $images[rand(0, count(images)-3)]; // получаем случайный файл

Дополнительная работа с файлами, это лишний геморрой.
Ты слишком много тревожишь файлы, для каждой записи ты открываешь, записываешь, закрываешь (достаточно один раз открыть и в конце закрыть). Когда вообще в файл записывать нет необходимости.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 14.05.2011 в 15:17.
Ответить с цитированием
  #20 (permalink)  
Старый 14.05.2011, 15:35
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

walik,
Безусловно.
Но в идеале использовать базу данных, а если и файлы , то во время работы их лучше блокировать(потому как им могут еще пользоваться).
Я же говорил что функционал записи в файл нужен только при добавлении новых картинок, просто его нужно поместить в функцию которую потом при необходимости вызывать после загрузки картинок.

А об этой функции scandir только сейчас узнал, спасибо Валентин
__________________
XYZ
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает скрипт :( VladimirV Javascript под браузер 5 21.12.2010 14:26
Хочу скрипт! (скрипт калькулятора на сайт) Georgiy Общие вопросы Javascript 6 28.01.2010 15:09
скрипт галереи Денис Белкин Ваши сайты и скрипты 8 21.10.2009 14:22
Скрипт простой галереи jokerbot jQuery 17 19.04.2009 17:00
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40