Время доброго. Условие: 1. Есть список сообщений: темы форума, блога, комментариев и т.д. 2. На 75 странице, из 100, редактируется сообщение. Вопрос: После сохранения/отмены редактирования, как, без использования JS, вернуться на страницу, содержащую это сообщение? Вариант 1 После сохранения/отмены редактирования считать все сообщения темы форума, перебрать все сообщения до отредактированного, при этом посчитать все сообщения по порядку от 1 и далее. Так, зная порядковый номер сообщения и количество сообщений на странице, можно высчитать нужную станицу: порядковый номер разделить на кол. сообщений = результат округлить до целого и +1. Технологии безошибочная, но очень объемная в выполнении. Вариант 2 Сохранять в сессии номер просматриваемой страницы. В этом случае, если в процессе редактирования сообщения msgedit.php?topic=1&msg=12, перейти (вручную вписав адрес) на страницу msgedit.php?topic=2&msg=12, то при сохранении/отмены редактирования будет произведен переход на неверную страницу. Вариант передавать номер страницы в запросе подвержен такой же ошибке. Есть ли решение менее объемное чем вариант 1?
Э? Анкор в составе URL не передается браузером... Надо специально переменную генерить, типа &anc=id_сообщения. Upd. потом вычислить URL страницы по номеру сообщения, и перенаправить на URL#id
Убивал бы тех, кто сохраняет страницу в сессию и потом делает оттуда редирект. Прям для однозадачных мозгов решение какое-то. Первый вариант вполне себе, тем более что у нормальных форумов уже есть функционал редиректа на нужную страницу с якорем на сообщение по id сообщения. Подвариант - передавать текущую страницу в параметры формы редактирования, он менее ресурсоемкий, но увеличивает хаос.
igordata Тогда может произойти беда, что описал в варианте2. да =)) и в этом случае прав [vs] Да он и не нужен, достаточно того, что передается id редактируемоего сообщения. И при включенном JS редактирование будет через AJAX, тут то вообще шикарно, вопрос в варианте если только PHP. [vs] Как именно вычислить-то? Как предлагал в варианте1 или по другому как-то? MiksIr Чего ж так критично? Главное же - результат. И если результат выполняет поставленную задача на все 100 (с учетом того, что в задаче так же требуется и качество выполнения: качество результат для пользователя, минимаяльная затрата времени и ресурсов сервера) то, имхо, это лучшее решении. Хм, так вот и вопрос в этом - в чем заключается технология функционала редиректа? Т.к. реализовываю банальное редактирование комментариев... Я бы делал по варианту1. Просто решение ресурсозатратное, и думаю, может есть лучший и такой же беспроигрышный вариант.
igordata Хм, не подумал сразу, и ошибся. Дело в том, что от хранения всего URI в сесии - выигрыша никакого. Т.к. если в URI есть номер страницы, то при ручной правке адреса будет ошибка (если брать номер страницы из сесии). Пока, все так же, остается вариант1. Есть ли предложения оптимезации варианта1 или более лучший?
Вычислить же, а не запомнить. [sql]SELECT COUNT(*) FROM `messages` WHERE `id`<'124531' and `topicId`='12'[/sql] потом подели на количество сообщений на странице - вот и номер страницы.
[vs] ооооооой-ё, приплыли..сааавсем заработался я, пора на покой )) Вот оно - реализация варианта1 в SQL. Ох туплю-туплю. Благодарю всех, решение найденно.
То решение, которое придумал программист только потому, что ему так удобнее сделать, а не потому, что так удобнее конечному пользователю - дерьмо. Именно по-этому программистов нельзя подпускать к проектированию интерфейсов, а нормальных пользователей будет перекидывать на хрен знает какую страницу после редактирования сообщения, ибо пользователь оказался многозадачным, и открыл в соседних окнах браузера несколько других страниц.
+1 в конечном счете все это делается для пользователя и надо уметь поставить себя на его место тут не соглашусь, если делаешь для себя и на совесть то все сделаешь как надо мало платите? не опытный программист?
MiksIr О чем речь: 1) Создание сайта 1-2мя людьми: дизайнер+прогер (html/css, php, js). 2) Группой: руководитель проекта, менеджер, дизайнер, верстальщик, прогер (php, js или отдельно на каждое направление), flash прогер, копирайтер, группа бета-тестеров .... Если про вариант 1. То все, имхо, упирается в ТЗ. Следовательно: работать над ТЗ до посинения, зеленения и фиолетования =D Соответственно ТЗ необходимо составлять продуманно, «с головой». А потом и реализовать его грамотно. Если вариант 2. То, как правило, весь вопрос в деньгах. Хотя частенько и в квалифицированности руководителя проекта. Специально же написал: Что бы показать, что если результат работы сайта – правильный, верный, надежный, ресурсоемкий, безопасный и полностью отвечает требованиям пользователей и разработчиков – то это хороший вариант. Даже, если в коде сайта URI сохраняются/считываются в/из сессию. Т.е. ко всем стадиями разработки сайта – от проектирования до реализации – необходимо подходить грамотно. Про решения которые – целиком и полностью согласен. Каждый из разработчиков должен заниматься своим делом. А уж если нет достаточных навыков, что бы сделать хотя бы нормально – то уж лучше учится, учиться, учиться ))
дальше не читал. вобще не вижу проблемы переходить туда-сюда при редактировании. делаю это регулярно, механизм ясен как день. =) а если кто-то когда-то под Новый Год засунет фиг в розетку и не попадет на нужный пост - то пусть почешет репу и тыкнет куда хотел ручками.
igordata Я про то, что якорь в URI, как таковой #qwe, на сервер не передается. Или я в чем то ошибаюсь? Эмм, ну да, проблем нет. Просто ступил я и не додумался сам: [sql] SELECT COUNT(*) FROM `messages` WHERE `id`<'124531' and `topicId`='12'[/sql][/sql]
Что ж, если вы свой фиг уже вытащили из розетки - поздравляю. Но на будущее скажу - мозги стимулируются другими методами. Даже у программистов.
А вот выше посмотри. Человек тоже считает, что делает "на совесть как надо". А от увеличения количеста денег человек не начинает работать качественно, это факт. Ибо перепутана причина со следствием.
MiksIr у меня есть замечательный инструмент для определения, удобства интерфейса - мама, сажаю ее если разбирается, значит все нормально xD В данном случае ajax бы делал, удобно и гемороя меньше Да, человек начинает работать качественно когда ему просто стремно плохо выполнять свою работу, а от вас требуется правильно сформулировать задачу и обеспечить комфортные условия в том числе платить хорошую зарплату чем вы отличаетесь вы от программиста в плане мозгов?
MiksIr Вижу, что вы каждую строчку/фразу - утрируете. Мы же не в судебном заседании же, где требуется изложение во всех аспектах и со всеми уточнениями. Здесь имел ввиду, что например в 5000р. «не влезет» тестирование сайта на все-все-все возможные уязвимости, проблемы, ошибки, а так же и разработка наилучшего по удобство и красивостям дизайна и т.д., т.п. Но само собой, да же за эту стоимость необходимо выполнять работу грамотно и качественно. Другое дело в 50 000р., 100 000р. и т.д. )) А уж то – на сколько хорошо и правильно выполняют свою работы программеры, верстальщики и т.д. разработчики сайта – то это задача руководителя проекта (и его квалифицированности, опытности). Вариант же, когда 1 человек разрабатывает весь сайт сверху донизу: Это в мой адрес? То на это уже отвечал: Padaboo Эхх...эхх....ну так писал же, что AJAX то будет, само собой - это же так сказачно удобно. Но сначала делаю PHP версию, что бы сайт был целиком и полностью работоспособным без JS. А уж JS наложить сверху потом - это элементарно )
Мамы - ограниченный ресурс.... достаточно поверхностное тестирование Неа, в большинстве случаев не работает. Мотивация программистов - вообще отдельная большая тема, не могу рассуждать про это. Знаю только одно - как только человек начинает рассуждать, что мол денег мало, по-этому стараться он не будет и все такое - в сад такого. Программист - это не штангист, которому нужно напрячься, что бы вес поднять - как он умеет делать, так он и делает. Может учиться тому, что не умеет, а может кодить на своем уровне всю жизнь - но это уже другая тема
MiksIr т.е. вы хотите сказать, что обезьяну можно научить программировать и она будет "кодить на своем уровне" ? есть типовые задачи, а есть задачи где придется быть "штангистом" я вам так про любую профессию сказать могу xD вот как дворника научили подметать так он и подметает, вот как начальника научили вести дела, так он и ведет дела, может конечно чему то учиться, а может думать, что он самый умный всю жизнь DDDD ps: бабушка это самое злое тестирование)
Совершенно верно, обезьяна будет кодить на своем уровне - бездумного тыкания в клавиатуру. И в любой профессии точно так же - это вы верно подметили. Только программист все же не штангист - выше головы своих знаний и привычек он не прыгнет. А если вы про "поработать без сна пару дней" - то я вообще не об этом.
MiksIr я про реализацию не типовых задач, где нужен не стандартный подход, где нужно думать, а не просто кодить как где то увидел или в универе научили, архитектура сильно нагруженных приложений вам в пример И там есть свои примеры и приемы, но применяя их нужно думать, писать вещи подходящие только под конкретную задачу и т.п. Вы можете описать воплощения проекта в жизнь, в вашей фирме, от задумки в голове до релиза?