Как передать более одной переменной в строке URL с помощью PHP?

#php #url #variables

#php #url #переменные

Вопрос:

Я хочу передать более одной переменной в строке URL с помощью PHP, однако я хочу, чтобы одна из переменных была добавлена к другой существующей переменной в строке URL.

Например:
Допустим, у вас есть: test.php?u=2 и давайте предположим, что одним из полей является возраст. Как только я нажимаю отправить, я хочу, чтобы URL-адрес выглядел как test.php?u = 2 amp; age = 22, но на той же странице.

Как я мог это сделать? Должен ли я снова перенаправлять пользователя?

Комментарии:

1. Ваш вопрос о том, как сконструировать URL?

2. Нет. Мой вопрос в том, как мне добавить другую переменную к тому же URL.

3. С перезагрузкой страницы или без нее? Последнее невозможно

4. С перезагрузкой той же страницы.

5. @master из PHP, тогда перенаправление заголовка — ваш единственный выбор. Однако создать URL-адрес сложнее, чем добавить amp;age=22 в строку запроса, если вы хотите сделать это правильно.

Ответ №1:

<form method="get" action="?"> — используйте это в качестве тега формы. Она будет отправлена на ту же страницу со всеми значениями формы в строке запроса, доступными через $_GET .

Ответ №2:

Вы можете написать код, который вводит все переменные запроса в форму, отправляемую кнопкой. Например:

 <form ... >
    <?php foreach($_REQUEST as $key => $value) {
              echo sprintf('<input type="hidden" name="%s" value="%s" />', 
                  htmlspecialchars($key),
                  htmlspecialchars($value));
          }
    ?>
<!-- the one you want to add follows -->
<input type="hidden" name="age" value="22" />
<input type="submit" />
</form>
  

Это некрасиво, но это работает (если вы не возражаете, что переменные из $_GET или $_POST на самом деле в конечном итоге будут отправлены другим методом, независимо от того, какой из них использует форма).