Каким образом можно сохранить шаги, которые пользователь уже прошел(для построения дерева переходов), те сохранить опции, которые пользователь уже выбрал, после перезагрузки страницы?
можно посмотреть http://gti.sion.by
Изначала использовал hidden-ы, но после перезагрузки все значения полей обнуляются.
Через сессии не получится, потому что главный файл, куда все подгружается index.php, а исполняемый work.php.
Отдавать из work.php сразу навигатор вместе с основным контентом не получится, потому что: при построении дерева и рядом с ним табоицы товаров навигатор строиться и в блоке дерева, и в блоке таблицы, а если отдавать только в блок дерева, то он некрасиво смотриться.
Вариант через куки остается только.... Или как еще можно?
Спустя 1 минута, 3 секунды (23.12.2011 - 14:23) inpost написал(а):
Эдик
Куки.
Куки.
Спустя 28 минут, 30 секунд (23.12.2011 - 14:51) Эдик написал(а):
А если они отключены у пользователя?
Спустя 2 минуты, 48 секунд (23.12.2011 - 14:54) Guest написал(а):
Цитата (Эдик @ 23.12.2011 - 11:51) |
А если они отключены у пользователя? |
Пиши пройденные шаги в файл, а потом читай

Спустя 4 минуты, 55 секунд (23.12.2011 - 14:59) Эдик написал(а):
Блин круто. А если одновременно 100 посещений? А как понять что пользователь ушел и когда нужно удалить файл?
Спустя 5 минут, 12 секунд (23.12.2011 - 15:04) inpost написал(а):
Эдик
И часто ты встречаешь тех, у кого он отключен?
Если отключен у 0.001%, то не надо сохранять, пусть заново шаги проходит.
И часто ты встречаешь тех, у кого он отключен?
Если отключен у 0.001%, то не надо сохранять, пусть заново шаги проходит.
Спустя 5 минут, 35 секунд (23.12.2011 - 15:10) Эдик написал(а):
inpost, на да, что-то в этом есть =)
А что за наезды на тебя, кому ты не угодил?
Тут еще есть один вариант, точнее 2.
Если просто возвращать не готовый html, а массив пользовательских данных и сам навигатор, а потом на клиенте его разбирать и навигатор туда, а контент сюда? Это как я понимаю нужен формат типа json? По быстродействию и по здравому смыслу лучше через куки или json?
А что за наезды на тебя, кому ты не угодил?
Тут еще есть один вариант, точнее 2.
Если просто возвращать не готовый html, а массив пользовательских данных и сам навигатор, а потом на клиенте его разбирать и навигатор туда, а контент сюда? Это как я понимаю нужен формат типа json? По быстродействию и по здравому смыслу лучше через куки или json?
Спустя 1 минута, 46 секунд (23.12.2011 - 15:12) inpost написал(а):
Эдик
Да есть один тролль, с головой не дружит. Я его баню, он снова приходит, а я снова баню. Это как лавочки на улице, он сам платит за их ремонт из своих карманных средств, а потом идёт и ломает. В голове их одни опилки.
Да есть один тролль, с головой не дружит. Я его баню, он снова приходит, а я снова баню. Это как лавочки на улице, он сам платит за их ремонт из своих карманных средств, а потом идёт и ломает. В голове их одни опилки.
Спустя 4 минуты, 8 секунд (23.12.2011 - 15:16) killer8080 написал(а):
Цитата (inpost @ 23.12.2011 - 14:04) |
И часто ты встречаешь тех, у кого он отключен? |
Около 10%, в большинстве случаев юзеры и слова такого не знают: "куки", просто поставили какой нибудь тупой антиспай. Незнание механизма угрозы порождает параною. Многие ламеры думают что от туда приходят вирусы.

Эдик я так и не понял, в чем проблема с сессиями?
Спустя 1 минута, 54 секунды (23.12.2011 - 15:18) Эдик написал(а):
Он наверное и в гости ходит по утрам =)
Так как тут лучше будет, через куки или отправлять массив и разбирать его(если так вообще возможно)?
Так как тут лучше будет, через куки или отправлять массив и разбирать его(если так вообще возможно)?
Спустя 7 минут, 53 секунды (23.12.2011 - 15:25) Эдик написал(а):
killer8080, ну во-первых придется в разметку засовывать функцию для построения ссылок, но это ерунда.
Проблема такая : вот например пользователь на 1 шаге :
он жмякнул на ссылку, в work.php передались параметры, объявились $_SESSION['step'],$_SESSION['id'],$_SESSION['name'], потом дальше операции, ну и в конечном итоге include(./tpl/model.htm). Но функция в index.php делает пересчет только после перезагрузки страницы, и она не увидит эти новые $_SESSION
Проблема такая : вот например пользователь на 1 шаге :
он жмякнул на ссылку, в work.php передались параметры, объявились $_SESSION['step'],$_SESSION['id'],$_SESSION['name'], потом дальше операции, ну и в конечном итоге include(./tpl/model.htm). Но функция в index.php делает пересчет только после перезагрузки страницы, и она не увидит эти новые $_SESSION
Спустя 27 минут, 21 секунда (23.12.2011 - 15:53) sergeiss написал(а):
Цитата (Эдик @ 23.12.2011 - 15:22) |
Через сессии не получится, потому что главный файл, куда все подгружается index.php, а исполняемый work.php. Отдавать из work.php сразу навигатор вместе с основным контентом не получится, потому что: при построении дерева и рядом с ним табоицы товаров навигатор строиться и в блоке дерева, и в блоке таблицы, а если отдавать только в блок дерева, то он некрасиво смотриться. |
Ничё не понял из этой фразы....
И также не понял, ГДЕ ты видишь проблему сначала всё в одном файле сделать, и обработку, и форму, а потом уже идти дальше, в другой скрипт, когда введены все корректные данные? Там всё прекрасно можно сделать, легко и просто.
Спустя 8 минут, 42 секунды (23.12.2011 - 16:01) Эдик написал(а):
sergeiss, ну смотри, фух:
что мне нужно сделать : мне нужно сделать выбор товара, пройдя перед этим 5 шагов по подбору параметров. Переход реализовать технологией ajax. При переходе к след шагу добавлять к навигатору ссылку на уже пройденный шаг(типа хлебные крошки или навигатор), при перезагрузке вручную страницы чтобы это навигатор не терялся.
что у меня есть: есть 2 файла : index.php и work.php
index.php -сам файл, содержащий библиотеки, разметку, функции для реализации запросов и вывод их в соотв блок.
work.php - исполняемый файл, куда приходят данные и где они обрабатываются и возвращаются контент в index.php
Практически все я сделал, только осталось выбрать технологию, с помощью которой я буду формировать навигатор, чтобы этот метод работал даже после перезагрузки страницы. делал через hidden, но не работает после перезагрузки
что мне нужно сделать : мне нужно сделать выбор товара, пройдя перед этим 5 шагов по подбору параметров. Переход реализовать технологией ajax. При переходе к след шагу добавлять к навигатору ссылку на уже пройденный шаг(типа хлебные крошки или навигатор), при перезагрузке вручную страницы чтобы это навигатор не терялся.
что у меня есть: есть 2 файла : index.php и work.php
index.php -сам файл, содержащий библиотеки, разметку, функции для реализации запросов и вывод их в соотв блок.
work.php - исполняемый файл, куда приходят данные и где они обрабатываются и возвращаются контент в index.php
Практически все я сделал, только осталось выбрать технологию, с помощью которой я буду формировать навигатор, чтобы этот метод работал даже после перезагрузки страницы. делал через hidden, но не работает после перезагрузки
Спустя 5 минут, 47 секунд (23.12.2011 - 16:07) Эдик написал(а):
изначально я делал так: в index.php сохранял все в сессии, вызывал функцию, формировал навигатор и возвращал его на главную. Все отлично. Но!
Вот такой пример:
http://tank.by/component/jl_catalogparts/?...uel=1&year=1975
Но получается я могу возвратить навигатор вместе с основным контентом, через include. И возвратив навигатор с деревом, я ограничу его ширину шириной блока для дерева, и он очень некрасиво будет разделен на 3 строки
Вот такой пример:
http://tank.by/component/jl_catalogparts/?...uel=1&year=1975
Но получается я могу возвратить навигатор вместе с основным контентом, через include. И возвратив навигатор с деревом, я ограничу его ширину шириной блока для дерева, и он очень некрасиво будет разделен на 3 строки
Спустя 41 минута, 54 секунды (23.12.2011 - 16:49) sergeiss написал(а):
Прочитал... По-моему, тут по-любому просится сессия. Иначе ты просто не обеспечишь восстановление после перезагрузки страницы. И какая разница - аякс или без него? Принципиальной не вижу. Всё равно сессия 

Цитата (Эдик @ 23.12.2011 - 17:07) |
Но получается я могу возвратить навигатор вместе с основным контентом, через include. И возвратив навигатор с деревом, я ограничу его ширину шириной блока для дерева, и он очень некрасиво будет разделен на 3 строки |
А вот это не понял до конца... Получается, что у тебя дизайн завязан с функционалом - функционал ограничивает дизайн?
Спустя 10 минут, 1 секунда (23.12.2011 - 16:59) Эдик написал(а):
sergeiss, ну получается так. Ну я думаю эта проблема возникает, когда ты используешь ajax. Его используя ты же вставляешь результат в определенный блок, а мне нужно результат распределить по 2 разным блокам в идеале- контентная часть и навигационная. Вот как это сделать я не придумал.
Ну я понимаю если бы сессия была возможна в js, но а так как?
Опять же на главной располагать функцию для обработки сессиий не катит - нету перезагрузки страницы, нету обновления навигатора.
А в самом work.php с помощью сессий формировать и отправлять навигатор не получается из-за невозможность разделить сам навигатор и основной контент по блокам.
Ну я понимаю если бы сессия была возможна в js, но а так как?
Опять же на главной располагать функцию для обработки сессиий не катит - нету перезагрузки страницы, нету обновления навигатора.
А в самом work.php с помощью сессий формировать и отправлять навигатор не получается из-за невозможность разделить сам навигатор и основной контент по блокам.
Спустя 13 минут, 47 секунд (23.12.2011 - 17:13) killer8080 написал(а):
Цитата (Эдик @ 23.12.2011 - 15:59) |
Ну я понимаю если бы сессия была возможна в js, но а так как? |
Нифига не понимаю. Причем тут js, аякс обращается к php. Кто мешает использовать сессии в бэкэнде аякса?
Спустя 5 минут, 46 секунд (23.12.2011 - 17:19) Эдик написал(а):
killer8080, блин, да никто не мешает, я их там и использую,
но сомтри, мне нужен навигатор. В бэкэнде я использую сессии, могу даже там сформировать навигатор с помощью сессий, могу даже его отправить без проблем обратно вместе с контентом. но! во фронтэнде мне нужно рассувать навигатор и основной контент по 2 разным блокам, один выше, один ниже, и я не знаю как это делать, ведь данные приходят целостным result
но сомтри, мне нужен навигатор. В бэкэнде я использую сессии, могу даже там сформировать навигатор с помощью сессий, могу даже его отправить без проблем обратно вместе с контентом. но! во фронтэнде мне нужно рассувать навигатор и основной контент по 2 разным блокам, один выше, один ниже, и я не знаю как это делать, ведь данные приходят целостным result
Спустя 1 час, 42 минуты, 11 секунд (23.12.2011 - 19:01) sergeiss написал(а):
Цитата (killer8080 @ 23.12.2011 - 18:13) |
во фронтэнде мне нужно рассувать навигатор и основной контент по 2 разным блокам, один выше, один ниже, и я не знаю как это делать |
Цитата (Эдик @ 23.12.2011 - 17:59) |
А в самом work.php с помощью сессий формировать и отправлять навигатор не получается из-за невозможность разделить сам навигатор и основной контент по блокам. |
Вот с этого и надо начинать, вобщем-то. Насколько я понимаю, что ты просто смешал получение данных и их представление. Вот с этим и надо разобраться.
На самом деле не важно совсем, используешь ты аякс или не используешь. Надо данные от представления отделить. И лучше это сделать на "раннем" этапе

Спустя 28 минут, 4 секунды (23.12.2011 - 19:29) Эдик написал(а):
Ну тут один выбор получается, чтобы максимально все отделить : отдавать work.php и принимать от него массивы данных, а разборку делать на клиенте, те в браузере, но блин, на каждый шаг идет свое представление, в php я просто подключал нужный файл шаблона, а тут придется голый switch использовать, как то не круто
Спустя 4 часа, 12 минут, 58 секунд (23.12.2011 - 23:42) sergeiss написал(а):
Цитата (Эдик @ 23.12.2011 - 20:29) |
Ну тут один выбор получается, чтобы максимально все отделить : отдавать work.php и принимать от него массивы данных, а разборку делать на клиенте, те в браузере, но блин, на каждый шаг идет свое представление, в php я просто подключал нужный файл шаблона, а тут придется голый switch использовать, как то не круто |
Если честно, то я не совсем понял. Ты же можешь пересылать через аякс не только данные, но и целиком готовые блоки с форматированием. Потом их выводишь в браузер и они красиво показываются.
Или я не о том?
Спустя 14 минут, 41 секунда (23.12.2011 - 23:57) Эдик написал(а):
sergeiss, ну да, о том. Я просто говорил, что есть 2 варианта:
либо отсылать готовые блоки, либо формировать блоки у клиента.
Вернемся к готовым блокам : я формирую готовый блок основного контента и блок навигатора и отдаю. Как вне во фронтэнде их разделить и поставить каждый на свое место?
либо отсылать готовые блоки, либо формировать блоки у клиента.
Вернемся к готовым блокам : я формирую готовый блок основного контента и блок навигатора и отдаю. Как вне во фронтэнде их разделить и поставить каждый на свое место?
Спустя 14 минут, 54 секунды (24.12.2011 - 00:12) sergeiss написал(а):
Цитата (Эдик @ 24.12.2011 - 00:57) |
Вернемся к готовым блокам : я формирую готовый блок основного контента и блок навигатора и отдаю. Как вне во фронтэнде их разделить и поставить каждый на свое место? |
А кто тебе мешает уже на каком-то более раннем этапе сделать там DIV, а потом только контент в него поместить? У ДИВа будет позиционирование такое, какое нужно.
То же и с "навигатором". Правда, я не совсем понял, что ты имеешь ввиду под "навигатором"

В крайнем случае, если ты будешь всё формировать динамически, то можешь через аякс же передать, где будет располагаться ДИВ. Короче говоря, не вижу проблем тут ни с какой стороны.
Спустя 8 минут, 13 секунд (24.12.2011 - 00:20) Эдик написал(а):
sergeiss, смотри, я делаю на главной странице 2 ДИВа, один под навигатор(типа хлебные крошки для шагов), другой под контент.
например <div class="links"></div> и <div class="content"></div>
Вот. Теперь в work.php я формирую например тоже 2 блока с классами "links" и "content". "отправляю" их через include(./tpl/links.htm); и include(./tpl/content.htm);
Теперь как мне в index.php их разделить, чтобы блок с классом links попал внутрь соответствующего блока и content то же самое?
например <div class="links"></div> и <div class="content"></div>
Вот. Теперь в work.php я формирую например тоже 2 блока с классами "links" и "content". "отправляю" их через include(./tpl/links.htm); и include(./tpl/content.htm);
Теперь как мне в index.php их разделить, чтобы блок с классом links попал внутрь соответствующего блока и content то же самое?
Спустя 1 минута, 15 секунд (24.12.2011 - 00:21) Эдик написал(а):
Я же получаю один ответ - "result", как я тут смогу разделить эти 2 блока по своим местам?
Спустя 7 минут, 31 секунда (24.12.2011 - 00:29) Эдик написал(а):
Я предугадаю ваш ответ и объясню зачем вообще эта каша заваривалась
Просто на предпоследнем шаге мне нужно вывести список, а потом при нажатии на элемент его рядом вывести таблицу, не удаляя этот список.
Те страница получается разделена на 2 блока будет. И если навигатор вывести одновременно с блоком списка, то получится некрасивый перенос навигатора на 3 строки, тк ширина списка 300px, поэтому и нужно совершенно в другой блок вставлять навигатор
Просто на предпоследнем шаге мне нужно вывести список, а потом при нажатии на элемент его рядом вывести таблицу, не удаляя этот список.
Те страница получается разделена на 2 блока будет. И если навигатор вывести одновременно с блоком списка, то получится некрасивый перенос навигатора на 3 строки, тк ширина списка 300px, поэтому и нужно совершенно в другой блок вставлять навигатор
Спустя 1 минута, 55 секунд (24.12.2011 - 00:30) killer8080 написал(а):
Цитата (Эдик @ 23.12.2011 - 23:21) |
Я же получаю один ответ - "result", как я тут смогу разделить эти 2 блока по своим местам? |
заворачивай контент в json.
Спустя 8 минут, 38 секунд (24.12.2011 - 00:39) Эдик написал(а):
killer8080, а это идея. Честно говоря с этим форматом еще не работал, но чувствую что "это то".
Тогда еще вопрос "на засыпку". С точки зрения быстродействия, как лучше вообще, использовать ajax только для отправки-получения массива ключей, а формировать нужный html с помощью js у клиента, или формировать html на сервере и тупо отдавать в нужный блок?
Тогда еще вопрос "на засыпку". С точки зрения быстродействия, как лучше вообще, использовать ajax только для отправки-получения массива ключей, а формировать нужный html с помощью js у клиента, или формировать html на сервере и тупо отдавать в нужный блок?
Спустя 5 минут, 43 секунды (24.12.2011 - 00:45) killer8080 написал(а):
Эдик
Проще формировать готовые блоки на сервере, а клиентом тупо вставлять.
Проще формировать готовые блоки на сервере, а клиентом тупо вставлять.
Спустя 1 минута, 56 секунд (24.12.2011 - 00:47) Эдик написал(а):
Проще для кого? Мне важна скорость. Я просто исхожу из того, что если будет 100 одновременных посещений, то нагрузка на сервер будет неплохая, а если отдать всю тяжесть формирования html на плечи самого пользователя, то нагрузка уменьшиться в разы. Или я не прав?
Спустя 14 часов, 10 минут, 55 секунд (24.12.2011 - 14:58) killer8080 написал(а):
Эдик
Серверу без разницы: отдать готовый html, или сложный многомерный JSON объект. Разница в трафике будет небольшой, и еще не известно в чью пользу. Зато значительно облегчается клиентский JS.
Серверу без разницы: отдать готовый html, или сложный многомерный JSON объект. Разница в трафике будет небольшой, и еще не известно в чью пользу. Зато значительно облегчается клиентский JS.

Спустя 2 часа, 7 минут, 8 секунд (24.12.2011 - 17:05) Эдик написал(а):
killer8080, просто же я отправил запрос, получил массив ответов в виде массива id и отдал его клиенту, а клиент сам разобрал и сформировал страницу.
А если по другому, то сервер получает массив, обрабатывает его, подключает страницу шаблона и все это отдает, разве разницы не будет в скорости для самого пользователя, который жмякает на кнопки?
А если по другому, то сервер получает массив, обрабатывает его, подключает страницу шаблона и все это отдает, разве разницы не будет в скорости для самого пользователя, который жмякает на кнопки?