Формирование ссылок + методы GET POST

vart

Новичок
В Joomla! есть один компонент интернет магазина, там я подсмотрел как строится управление этими категориями: Есть табличка - имя категории / ... / удалить / и т.д.

При наведении на кнопку удалить всплывает ссылка типа: ..&controller=categories&task=delete&key=1
При нажатии выполняется запрос на удаление, но адресная строка не изменяется (т..е &task=delete&key=1 не добавляются)

Вопрос как это реализовано?
 

Dovg

Продвинутый новичок
После удаления редиректят обратно, например.

Возьми файрбаг какой-нибудь и посмотри сам.
 

vart

Новичок
Дело в том, что страница обновляется (значит AJAX отпадает), но если бы они просто обновляли, то в адресе страницы хотя бы на полсекунды, но вылезло бы &task=delete&key=1.

Если еще какие-нибудь варианты?
 

Dovg

Продвинутый новичок
vart
Еще раз. Возьми firebug и посмотри какие запросы уходят на сервер и что приходит в ответ. Сам посмотри.
Не надо гадать и искать "варианты".
 

С.

Продвинутый новичок
По каким признакам можно судить, что обновляется страница, а не часть ее?
 

vart

Новичок
я просто не знаю как пользоваться firebug для просмотра запросов. Я использую его только во время верстки.
но если бы они просто обновляли, то в адресе страницы хотя бы на полсекунды, но вылезло бы &task=delete&key=1.
К тому же как они тогда перенаправляют если в адресной строке не видно &task=delete&key=1.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Автор, замерять что-то "на глаз" крайне нежелательно в программировании, надо сделать как тебе уже написали. Погуглив, если что не понятно. Страница у тебя скорей всего обновляется, просто ты не успеваешь это заметить.
 

vart

Новичок
Просто я сделал то же самое (с перенаправлением) у меня буквально на полсекунды появляется в адресной строке &task=delete&key=1
Тогда такой вопрос, наверно многие сталкивались. Есть меню, каждый пункт можно отобразить или скрыть нажатием на ссылку (допустим) Кто как реализовал бы это?
 

Yuriy_S

-=PHP-Club=-
я бы реализовал это без обновления страницы - через AJAX. + изменение какого-либо поля таблицы (или контейнера div) для обозначения, что этот пукнт скрыт или отображаемый на сайте.
 

Здыхлик

Kohaner
Команда форума
я просто не знаю как пользоваться firebug для просмотра запросов. Я использую его только во время верстки. К тому же как они тогда перенаправляют если в адресной строке не видно &task=delete&key=1.
Открываете firebug, выбираете (включаете, если отключена) закладку NET (так она вроде называется). Жмете кнопку "не очищать" (это чтобы в случае редиректа предыдущие заголовки не терялись). После этого жмакаем по ссылкам и смотрим, что происходит.

Появится последовательность HTTP-запросов. Если AJAX, то скорее всего будет только один запрос. Перезагрузку страницы можно определить по запросам к скриптам, стилям, картинкам и т.д. Отображаемые запросы кликабельны, но Вам наверное еще рано в них заглядывать.
 

vart

Новичок
я бы реализовал это без обновления страницы - через AJAX. + изменение какого-либо поля таблицы (или контейнера div) для обозначения, что этот пукнт скрыт или отображаемый на сайте.
А как и где вы бы хранили id записи ( он ведь нужен для удаления записи из бд) ?

Появится последовательность HTTP-запросов. Если AJAX, то скорее всего будет только один запрос. Перезагрузку страницы можно определить по запросам к скриптам, стилям, картинкам и т.д. Отображаемые запросы кликабельны, но Вам наверное еще рано в них заглядывать.
Страничка действительно перезагружается, но не понятно как. Я не могу понять как они и после какой операции перенаправляют на страничку без &task=delete&key=1 +
на страничке выводится сообщение о том что такая-то категория удалена.

Я тоже попробовал сделать тоже самое, я формирую сообщение и перенаправляю - сообщение показывается на секунду и пропадает. (если сначала перенаправить, а потом сформировать сообщение) получается тоже самое.
 

Dovg

Продвинутый новичок
Страничка действительно перезагружается, но не понятно как.
Выше твоего сообщения есть подробная инструция по пользованию файрбагом. Почему ты ей не воспользовался?
 

vart

Новичок
Файрбаг тут уже ни при чем, мне интересно знать какой программный код они используют для перенаправления. <meta ...; headers, или на javascript как-то. Проблема не решена, на мой вопрос пока, к сожалению ни кто не может ответить
 

Dovg

Продвинутый новичок
hint: еще firebug подскажет вам http код, поможет отладить js, а meta можно посмотреть в исходном коде страницы.
Почему ты упорно не желаешь сделать это сам?
 

vart

Новичок
уважаемый Dovg, код я уже посмотрел перенаправление не с помощью meta и javascipt. Я уже не знаю что делать, через фаербар посмотрел, они используют редирект, но КАК получается что &task=delete&key=1 не появляется в адресной строке?? Ради интереса попробуйте сделать то же самое и перенаправить.
Я тоже попробовал сделать тоже самое, я формирую сообщение и перенаправляю - сообщение показывается на секунду и пропадает
И как они отображают сообщение после перенаправления??
 

vart

Новичок
В href лежит ссылка в onclick лежит обработчик return false
А можно поподробней ? для чего используется retun false ? и какую из 2-х моих проблем это может решить?? Спасибо.
 

vart

Новичок
Сам спросил - сам отвечаю:
PHP:
header("location: ".$url."", true, 303);
exit();
Это решение моей проблемы. Теперь при нажатии на ссылку &task=delete&key=1 не добавляется (точнее добавляется но в адресной строке этого не видно.)
 
Сверху