Вопрос № 73721: Уважаемые эксперты!
Существуют ли средства, позволяющие отследить нажатие кнопки "Назад" браузера. Мне нужно запрограммировать реакцию на это действие.
Валентина...Вопрос № 73756: Здравствуйте! Задавал вопрос в ветку веб-дизайн, но отвечают вяло иответы меня не удовлетворили. Может Вы поможете.
У меня сайт сделан с использованием фреймов. Слева – меню. Документы открываются в правом. Сейчас хочу перейти на таблицу. Схема ...Вопрос № 73786: Напишите механизмы создания страниц через систему управления содержанием(через админку).
Как вы это осуществляете.
Либо прямо создавать страницу с содержанием, которое ввёл пользователь и помещать в эту страницу текст, называть её по имени,...Вопрос № 73827: И снова добрый день, уважемые эксперты!
Вопросов на этот раз 3.
1 Объсните, почему функция preg_replace так плохо работает в Денвере? Переписывется только последний найденный элемент и зачем-то требует "/"? (см. скрипт в приложении...
Вопрос № 73.721
Уважаемые эксперты!
Существуют ли средства, позволяющие отследить нажатие кнопки "Назад" браузера. Мне нужно запрограммировать реакцию на это действие.
Валентина
Отправлен: 02.02.2007, 06:46
Вопрос задал: Валентина (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ерёмин Андрей
Здравствуйте, Валентина!
В пределах PHP - точно нет, потому что кнопки "Назад", "Вперёд" и т.п. - это кнопки, выполняющие действия на стороне клиента. Возможно, их нажатие можно отследить с помощью JavaScript. Например, можно сделать html-ссылку, которая будет имитировать нажатие кнопки "Назад": <a href="" onclick="window.history.back(0);">...<a> В дополнение к этому отмечу, что эти кнопки созданы для удобства пользователя, а не для функциональности сайтов. С их помощью можно
просмотреть страницы, которые были открыты в окне до этого, не загружая их заново. А если кнопку "перепрограммировать", то она потеряет своё истинное назначение. Это не есть хорошо, имхо. Рекомендую воспользоваться ссылками такого образца, как я привёл. Желаю удачи!
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор) Россия, Тула ---- Ответ отправлен: 02.02.2007, 09:14 Оценка за ответ: 5 Комментарий оценки: Благодарю за ответ. Я разрабатываю электронный учебник для дистанционного обучения с контролем знаний, мне нужно, чтобы пользователь после отправки ответа и последующего получения оценки своей работы не мог вернуться на предыдущую страницу и повторить отправку ответа. Хотя, может быть, мне удастся это сделать
с помощью сессий.
Отвечает: Бородин Александр Олегович
Здравствуйте, Валентина!
В PHP это у Вас не получится(PHP исполняется на стороне сервера и ему параллельно, есть ли вообще в Вашем браузере кнопка "Назад"), советую поинтересоваться наличием средств для этого в JavaScript. Судя по всему нужно работать с объектом history. Он как раз и содержит информацию о том, куда "назад" ходил посетитель.
--------- Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.
Отвечает: Барков Илья Андреевич
Здравствуйте, Валентина!
Напишите на JavaScript перехватчик нажатия клавиш и делайте что угодно при нажатие на эту кнопку.
например можно создать невидимый фрейм, а в нем выполнять пхп действия.
лабо аяксом тоже самое.
проще пареной репы.
Ответ отправил: Барков Илья Андреевич (статус: 8-ой класс)
Ответ отправлен: 03.02.2007, 20:10 Оценка за ответ: 4
Вопрос № 73.756
Здравствуйте! Задавал вопрос в ветку веб-дизайн, но отвечают вяло иответы меня не удовлетворили. Может Вы поможете.
У меня сайт сделан с использованием фреймов. Слева – меню. Документы открываются в правом. Сейчас хочу перейти на таблицу. Схема в приложении.
Во вторую колонку грузится файлик с новостями.
Вопрос. Можно ли, не перегружая все, загрузить нажатием на пункт меню или на ссылку внутри второй колонки файл в эту же вторую колонку?
Приложение:
Отправлен: 02.02.2007, 12:14
Вопрос задал: Olibel (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Селев Валерий
Здравствуйте, Olibel!
Да, это возможно реализовать используя:
- IFRAME
- AJAX
IFRAME - всё просто:
Left menu:
<a href="my.html" target="rightColumn">Link</a>
.....
<iframe name="rightColumn"></iframe>
AJAX - посложнее. Тут необходимо знание JavaScript. В сети полно примеров.
Вкратце - при помощи JavaScript создается запрос на сервер, серверный скрипт (напрример, php) отдаёт в ответе только ту часть, которую необходимо перезагрузить. Потом джаваскриптом эту часть вставляешь в правую часть сайта.
Ответ отправил: Селев Валерий (статус: 3-ий класс)
Ответ отправлен: 02.02.2007, 12:27 Оценка за ответ: 5 Комментарий оценки: А есть возможность сделать высоту ифейм резиновой?
Отвечает: Punk_UnDead
Здравствуйте, Olibel!
буду краток(с)
ДА!
а теперь поподробнее
пхп это серверный язык, с его помощью можно только сгенерировать страницу,
если же вы желаете именно так, то аякс вам в руки и отправляйтесь в ветку яваскрипт
однако сразу предупреждаю о подводных камнях, если яваскрипт будет отключён, то посетитель будет долго смотреть на неработающий интерфейс, и поэтому вам всё равно придётся реализовывать полную загрузку страницы
--------- всё испытано на себе
Ответ отправил: Punk_UnDead (статус: 3-ий класс)
Ответ отправлен: 02.02.2007, 12:42
<a href='/news.html' target="news_block">
так осуществляется задание открытие ссылки в фреймах.
"или на ссылку внутри второй колонки файл в эту же вторую колонку?"
просто ссылкой без target-a
Ответ отправил: Барков Илья Андреевич (статус: 8-ой класс)
Ответ отправлен: 03.02.2007, 20:08 Оценка за ответ: 5 Комментарий оценки: Отлично! Но поскольку я написал, что у меня с фреймами работает, то надо бы ставить ПЛОХО :-)
Вопрос № 73.786
Напишите механизмы создания страниц через систему управления содержанием(через админку).
Как вы это осуществляете.
Либо прямо создавать страницу с содержанием, которое ввёл пользователь и помещать в эту страницу текст, называть её по имени, которое ввёл пользователь.
Либо создавать запись в таблице БД, из которой потом вытаскивать содержимое при помощи параметров в строке адресной(www.site.ru/index.php?pagenamefromDB=about)
Напишите правильный вариант, мои могут быть заблуждением... я ЦМС с созданием страниц пока не делал. Создание новостей, голосований, гостевые администрируются через мою админку, пользователи, но не создаются ещё пока страницы.
Напишите - мне все равно придётся создавать эту функцию.
Отправлен: 02.02.2007, 16:43
Вопрос задал: PetrKi. (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Бородин Александр Олегович
Здравствуйте, PetrKi.!
Лучше всего воспользоваться шаблонами. Если есть мануал по системе Smarty, советую почитать его и глубоко им проникнуться. Ну и заодно мне его дать. Если есть копия :-)
Если нет желания долго вчитываться, создайте свой обработчик шаблона. Скажем, изменяемые части шаблона заключаются в фигурные скобки, а значения переменных хранятся в обработчике. Шаблон открывается функцией fopen, превращается в строку и обрабатывается функцией обработки строк, например, с помощью регулярного выражения. На мой взгляд, лучше всего использовать объектно-ориентированный подход. Тогда, если Вы программируете на PHP5, Вы можете создать удобный класс для работы с шаблонами.
Можно создать шаблон, порезать его на части и каждую часть сохранить в отдельном файле. А потом инклюдить, инклюдить и еще раз инклюдить...
--------- Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.
Думается, Вы имеете в виду функции РНР fopen, fread, fclose. Почитать об этом можно здесь.
Удачи!
--------- Не попрекай людей тем, в чём сам слаб.
Ответ отправила: Angel7 (статус: Студент)
Ответ отправлен: 04.02.2007, 20:54
Вопрос № 73.827
И снова добрый день, уважемые эксперты!
Вопросов на этот раз 3.
1 Объсните, почему функция preg_replace так плохо работает в Денвере? Переписывется только последний найденный элемент и зачем-то требует "/"? (см. скрипт в приложении)
2 Как узнать номер элемента в массиве, чтобы обратиться напрямую по типу $arrey [2]?
3 Можно ли в функции preg_replace задать номер элемента массива, который надо переписать? По типу "элемент№х массива $arrey заменить на ХХ"?
Спасибо!
Приложение:
Отправлен: 02.02.2007, 22:35
Вопрос задала: Ling (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Liw
Здравствуйте, Ling!
1.1В данном случае вы не целесобразно импользуете preg_replace,
так как эта функция использует замену по регулярному выражению,
(отсюда и /) так как этого не требуется используйте str_replace
1.2 Вы не верно добавляете значение в массив - preg_replce тут ни причём -
нужно так: $arr_plus[] = 'значение'
-у Вас получается присваивание каждый раз нового значения.
1.3 preg_replace("/$i/","$tag",$rez); это вообще зачем?
- вы берёте каждый раз разные строки для поиска замены а массив один и тот же
нужно было сначало создать массивы поиска/замены а потом заменять:
т.е. просто:
A: вынести preg_replace("/$i/","$tag",$rez); за цикл foreach
В: создать два массива поиск/замена
итого:
foreach ($rez as $i)
{
$replacement[] = "<w id='' n=''>$i</w> ";
$pattern[]="/$i/";
};
reset($rez);
$arr_plus = preg_replace($pattern,$replacement,$rez);