Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помочь с переходом между страницами, php + js

Дмитрий Глущенко Знаток (397), на голосовании 8 месяцев назад
Есть $REQUEST запрос, при котором происходит удаление записи с БД. После удаление записи, пользователь должен обновить страницу. Вот код:
 if(isset($_GET['dellfinance'])){ 
mysql_query("DELETE FROM `auto_coursants_finance` WHERE `id` = '".$_REQUEST['dellfinance']."' LIMIT 1");
$url = '/admin/groups/?mode=users&id='.$_REQUEST['id'];
header("Location:$url");
}
После перехода(обновления страницы) мне необходимо выполнить JS код. Вопрос знатокам, как выполнить реализацию данного метода или же. Если, условно, выполняя header - происходит переход по другому url адресу, и GET запрос пропадает
Дополнен 9 месяцев назад
Более менее получилась реализация методом, вместо header:

<script>
window.history.go(0);
document.getElementById("alert_bottom_dellDep").style.display = "block";
</script>

Но в таком случае, обновление страницы происходит бесконечно, так как url адрес содержит GET запрос
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157164) 9 месяцев назад
Чтобы выполнить JS код после перехода, можно добавить параметр в URL, который будет служить маркером для выполнения скрипта. Изменим URL в header:
 $url = '/admin/groups/?mode=users&id='.$_REQUEST['id'].'&script=1';  


На целевой странице проверяем наличие `$_GET['script']` и запускаем JS:
  




Таким образом, после перехода и обновления страницы, если в URL есть параметр `script`, будет выполнен JS код.
Дмитрий ГлущенкоЗнаток (397) 9 месяцев назад
Я думал об этом методе как самый запасной аэродром. Но, в целях саморазвития, есть ли альтернативы?
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157164) Дмитрий Глущенко, Чтобы избежать бесконечного перезапуска, можно использовать JavaScript для изменения URL, очищая параметры запроса после выполнения вашего кода. Вот как: 1. Используйте `history.replaceState()` для изменения URL без перезагрузки страницы. Это позволит вам удалить параметр `dellfinance` из URL, предотвратив повторное выполнение кода удаления при обновлении страницы. https://pastebin.com/q47tDQXB Таким образом, после удаления записи из базы данных и выполнения JavaScript кода, URL будет очищен от параметров GET, что предотвратит бесконечный цикл обновления страницы.
Похожие вопросы