Страница 5 из 19
Добавлено: Вт января 19, 2010 10:33 pm
GhOsT_MZ2
ок. Тогда сначала нужно сделать так, чтобы страница грузилась полностью с одного файла. То есть, не должно быть фреймов и процего бреда.
Тут тебя подстережет 2 проблемы:
1) Верстка... Вот тут будет тяжело..
2) Собрать все в кучу, но радует, что код твой и ты уже знаешь что откуда идет... Но все равно рутина...
Как только это сделаешь, можно смело начинать самое ответственное - скрещивание с AJAX)
В итоге будет все красиво, при выборе актера или фильма страница не будет перезагружаться, просто будет подгружаться необходимая информация, а такая вещь, как список будет неизменным...
Потом можно будет и список получать с помощью AJAX, например из файла поиска, который будет выдавать и список актеров и список фильмов... При пустом запросе - полный список, а при поиске - то что нужно...
И главное - не будет путаницы в файлах... а то там же хрен поймешь что где))
Добавлено: Вт января 19, 2010 10:42 pm
ynkas
Мда...
Расписано красиво, но я чувствую времени займет кучу...
Переделывать придется практически все заного, изначально код писал частями и больше для тестов, потом кое как все это склеил и получилась такая каша как сейчас...
Занялся бы, но к сожалению нет времени, вот если бы не ленился и писал пояснения было бы проще, а так приходится ковырять и вспоминать где, что и зачем...
В общем попробую, если быстро пойдет дело скомпоную
Добавлено: Вт января 19, 2010 11:01 pm
GhOsT_MZ2
Я заметил что там каша... Благо скрипты простые... Но, есть один плюс, у тебя много "размазано" и дублировано, поэтому выглядит страшно...
На практике такой простой движок можно сделать в нескольких файлах:
index.php - основная страница, например со списком фильмов и информацией о фильме;
actor.php - страница описания актера со списком чего-ибо (или фильмы актера, которые есть в базе, или список актеров (хотя это не разумно));
Хотя, эти файлы можно и объединить, но будет громоздко...
Далее идут файлы для удобства:
Визуальные (подключаются в определенном месте скрипта):
header.php - отрисовывает верхушку страницы, которая одинаковая на всех страницах;
footer.php - аналог предыдущего, только для низа страницы;
style.css - само собой, без этого никуда)
+ картинки и различные внешние JS-скрипты...
Функциональные (первый подключается вначале каждого скрипта, описанного выше, а остальные - в init.php):
init.php - выполняет инициализацию скрипта, например подключение к БД, подключение других модулей;
function.php - содержит используемые более одного раза куски кода, представляющие из себя функции;
config.php - опционально. Содержит ряд настроек скрипта, что делает его более гибким;
Приведя твой скрипт к такой структуре, будет все удобно и понятно, человек, открываший его, включая тебя, будет знать что и где искать...
Если добавить работу через AJAX, то появится еще 1 файл - например get.php, который будет делать выборки и "выдавать" нужную информацию. За счет него такие файлы, как index.php и actor.php значительно "похудеют".
На мой взгляд, достаточно оптимальная структура, главное все сделать продуманно и максимально гибко...
В более сложных проектах файлов конечно же больше, как основных, так и вспомогательных. Вспомогательные как правило разделены на различные файлы, взависимости от их цели...
Добавлено: Пт января 22, 2010 8:28 pm
ynkas
В общем переделал, теперь работает в 2х файлах (index.php и person.php) с подключаемыми функциями, без фреймов.
Список пришлось перенести вправо, так как в фрейме он подгружался постепенно и было незаметно.
Немного подправил логику вывода...
Фильмография актера выводится разборчиво
Проблема с прокруткой пока осталась
Проблема с ограничением пока осталась
Добавлено: Сб января 23, 2010 4:15 am
GhOsT_MZ2
Не плохо было бы добавить в CSS свойство overflow: scroll-y для #coolmenu, чтобы отображалась полоса прокрутке в списке фильмов, а то до низа списка какбы не добраться.
Добавлено: Сб января 23, 2010 6:11 am
ynkas
хм
а ты в каком браузере смотришь?))
У меня в IE8 все ок))
В IE8 в режиме совместимости глючат эффекты изображений, но прокрутка есть...
и для дива со списком стоит так
Код: Выделить всё
<div style="height:658px;overflow-x:auto;overflow-y:visible;">
Добавлено: Сб января 23, 2010 3:23 pm
GhOsT_MZ2
Смотрю в FF и после добавление того свойства, про которое говорил, все стало нормально.
Добавлено: Сб января 23, 2010 3:49 pm
ynkas
Поправил )
Что с аяксом?)
Добавлено: Сб января 23, 2010 4:03 pm
GhOsT_MZ2
В Opera 9.26 тоже не работало. Изменило ситуацию:
<div id="coolmenu" style="overflow: scroll; height: 100%;">
Насчет AJAX. Качаешь файлик
ajax.js и подключаешь его.
Ячейке таблицы, где находится информация о фильме, присваиваешь ID, например,
movie_info
Ссылку на фильм в списке делаешь такого вида:
javascript:show_movie(id)
Сама функция выглядит примерно так:
Код: Выделить всё
function movie_desc(id) {
var ajax = new new_ajax();
//ajax.onShow('');
var varsString = "";
ajax.setVar("MovieID", id);
ajax.requestFile = "blocks/right_index.php";
ajax.method = 'GET';
ajax.element = 'movie_info';
ajax.sendAJAX(varsString);
}
В файле
right_index.php делаешь так, чтобы выводилась только информация о фильме, без лишнего мусора. ID фильма будет передаваться GET-запросом параметром
MovieID. Например, $_GET["MovieID"].
И еще, нужно скачть и подключить
jQuery.js.
Скрипы:
http://www.sendspace.com/file/u1nlgd
http://www.sendspace.com/file/fptjbv
Добавлено: Сб января 23, 2010 4:48 pm
ynkas
GhOsT_MZ2 писал(а):В Opera 9.26 тоже не работало. Изменило ситуацию:
<div id="coolmenu" style="overflow: scroll; height: 100%;">
но в IE появилась 2я прокрутка и снизу прокрутка...
Скрипты ща попробую прикрутить
Update
Подключил, работает
Но есть одна проблемка, можно только один раз просмотреть фильм из списка, если щелкнуть на просмотренный фильм ничего не происходит...
Это я как понял в IE происходит
Добавлено: Сб января 23, 2010 9:11 pm
GhOsT_MZ2
Выходит и на IE8 такая же штука с аяксом... Любопытно... Вообщем будем разбираться. Кстати, не знаю как в IE, но в Opera 9.26 карточка поиска кривовато выглядит - середина вправо немного съезжает...
Добавлено: Сб января 23, 2010 10:14 pm
GhOsT_MZ2
Вообщем "украл" с одного движка трекера кусок JS-кода) Пашет в IE6, Opera 9.26, FF 3.0.17.
Код: Выделить всё
function movie_desc(id) {
(function($){
$.get(
"blocks/right_index.php?MovieID=" + id,
{},
function(data) {
$("#movie_info").empty();
$("#movie_info").append(data);
}
);
})(jQuery);
}
Добавлено: Сб января 23, 2010 10:48 pm
Riemann
Граждане, сообщайте как будут промежуточные варианты с новыми вариантами скриптов, для скачивания. 1-й пост обновляется, но пока результата не видно.
Добавлено: Сб января 23, 2010 11:06 pm
ynkas
Отлично, спасибо за код
Добавлю что работает в IE7, IE8, Safari
Осталось навести марафет и выложу
Добавлено: Сб января 23, 2010 11:14 pm
Снеговик
ждем с нетерпением)))))