POST, GET, Onsubmit - что лучше для простого перехода по URL с передаваемой переменной?

Что выгоднее применять для простого перехода по URL с передаваемой переменной "code"

  1. <form method="POST" - здесь всё ясно, через сессию POST, далее редирект по header("Location: .
  2. <form method="get" target="_self" action="page.php?code="<?php print($_POST['code']); ?>"> - здесь вот такиv образом. Мне кажется самый некорректный вариант.
  3. onsubmit="window.location = 'weather.php?code='+code.value; return false;" - здесь просто и здорово. JavaScript и здесь выручает.

Верно ли я понимаю, что для простого перехода по кнопки на URL с вписанием в URL переменной, третий вариянт самый простой и самый оптимальный для реализации?


Ответы (1 шт):

Автор решения: Ипатьев
  1. Для простого перехода по URL в протоколе HTTP предусмотрен метод GET

  2. Для простой реализации метода GET в HTML используются гиперссылки. Поэтому если код находится на сервере, и надо передать его на клиент с тем, чтобы потом можно было по нему кликнуть, пишем так

     <a href="page.php?"<?= http_build_query(['code' => $code]) ?>">Переход</a>
    
  3. Если переход необходимо осуществить после обработки POST запроса, то это делается HTTP заголовком Location

     header("Location: page.php?".http_build_query(['code' => $_POST['code']]));
     die;
    
  4. Если все происходит на клиенте, а примеры на РНР добавлены в вопрос от балды, то можно использовать яваскрипт и window.location

→ Ссылка