![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| ArNic |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.1.2007 Репутация: нет Всего: нет |
есть у меня помимо прочих <div id=right> там выполняется загрузка списка, заполнение форм и т.п. действия. проблем с этим не возникает. т.е. пишу просто <a onclick="скрипт">Название</a>
Но проблема не в этом. Например я выполнил то или иное действие, после которого должно быть автоматическое обновление страницы только в <div id=right>, т.е. если в PHP есть команда header("Location: адрес ссылки"); аналогично хочу выполнить функцию ява-скрипта, т.е. как при onclick но знаний не хватает. Пытался написать header("Location: RightDiv(div,link)") да только получил в конце адресной строки эту функцию, т.е. http://../RightDiv('right','right.php?t=1'). Самому никак не пробиться, помогите! |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
А теперь подробно, что ты считаешь JS, где он у тебя исполняется и лучше с ссылкой на страницу. Сейчас это несколько сумбурно
Перейти на другую страницу можно: window.location.href = ... Обновить только div можно через div.innerHTML = ... или очистить div от потомков (.childNodes[], .removeChild()) и затем добавить новое поддерево (.appendChild). Контент можно дёргать ajax'ом (к примеру prototype.Updater) -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| ArNic |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.1.2007 Репутация: нет Всего: нет |
Главная страница:
SrcShow функция написана (неграмотно :( (в смысле нечитабельно) поэтому выкладывать не буду) на основе фреймворка prototype, преимущественно фигурирует там 2 оператора 1. AJAX.Updater('слой', 'ссылка') 2. $('слой').toggle Из скрипта видно, что есть <div id=right> в нем лежат конечные данные Если с формой можно еще при submit выполнить скрипт, то уже при переадресации (например после выполнения MySQL запроса в отдельном файле) я обычно пользуюсь командой header() но с помощью этой команды функцию яваскрипта на подобии
не выполнить! Т.е. выполнился скрипт файла MySQL.class.php (например удаления из базы данных строки) и должен обновиться после этого ... по идее самостоятельно функцией SrShow('right,right.php?t=3&v=5','1','1') но если я ее выполняю после окончания php кода (показываю отрывок)
то выходит в адресной строке и естественно страница не загружается. Пробовал уже и убрать "Location:" оставив только скрипт, хотя хорошо читал FM но надеялся получится. В итоге таже строчка выходит! Перерыл все не смог найти.... помогите плиз! |
||||||
|
|||||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Я так понял, нужно отправить запрос на сервер, а в ответ получить вызов функции на клиенте, соответственно этот вызов выполнить.
Выполнить запрос не перезагружая основой странички можно массой способов, ты об этом знаешь раз используешь AJAX.Updater (надеюсь понимаешь как оно работает). В ответ ты получаешь контент, что на клиентской стороне выполняем. Значит можно передать и вызов функции, от простого и не секурного текста на eval() и до полноценного RPC процессора. Вывод: на сервере вместо контента генерим вызов JS функции. Для начала сгенери SrShow('right..., полученную строку в eval(). Убедившись, что всё просто, сгенери простой XML, в котором укажи что содержит ответ (вызовы функций клиента и контент, что нужно показать). Естественно от Updater'а придётся отказаться, он ожидает просто вёрстку, напиши свой (дело 20 строк). -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| ArNic |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.1.2007 Репутация: нет Всего: нет |
Не получилось! Че-то не пойму... сделал вот такую сконструированную функцию:
она обращается к функции SrShow
хотел выполнить после заполнения формы:
говорит, что объект Ajax.Reqest не поддерживает метод 'post' . Да дело даже не в этом. Мне кажется не по правильному пути двигаюсь. Это сообщение отредактировал(а) ArNic - 31.1.2008, 00:49 |
||||||
|
|||||||
| ArNic |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.1.2007 Репутация: нет Всего: нет |
Надеюсь кто-нибудь сможет мне объяснить, верно ли я иду и скорректировать при случае
|
|||
|
||||
| Dr.Zlo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 12.11.2007 Репутация: 1 Всего: 2 |
Возможно тебе поможет jframes, его идея как раз в том, чтоб загружать страницы в обычный див. http://garage.pimentech.net/examples/jquery_jframes/ К сожалению мануалы по jframes на французском, так что смотри исходник, там вроде всё просто. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Дело, насколько я понял из личных переговоров
Запрос по адресу "... index.php" выводит всю необходимую для отображения информации, кухню (первый html с динамически подгружаемыми framеset'ами). В этих самых frameset'ах появляются формы, с помощью которых можно заставить выполнять приложение некие действия. Таким образом организуется своеобразное динамическиое меню. Реакция на эти действия в обработчике этих самых форм заключалась в исполнении некоего PHP кода и вызове header('Location :'+...'index.php') - возврат на "основную" страничку приложения. Проблема была в том, что после реакции возврат происходит в "верхнее" состояние этого меню, а нужно бы на какую-то конкретную ветку, связанную с конкретным его (меню) пунктом. Было предложено в процедурах реакции использовать возврат по адресу header('Location :'+...'index.php#xxx'), header('Location :'+...'index.php#yyy'), а уже при загрузке index.php JavaScript'ом проверять наличие и наполненность window.location.hash. Заодно и кнопка "история" подлечилась. ArNic, вам следовало бы потренироваться правильно формулировать свои "задачи". Из объяснений, прозвучавших в этом топике я, признаюсь честно, совсем ничего не понял ;-) "Правильно формулированная задача содержит в себе половину решения" ((с) уж не помню чей) Это сообщение отредактировал(а) ksnk - 31.1.2008, 10:10 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| ArNic |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.1.2007 Репутация: нет Всего: нет |
Огромное спасибо всем кто помогал мне, а особенно ksnk, который потратил час на выяснение истинной ситуации и решение проблеммы.
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |