#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
на самом деле в конечном итоге будут отправлены другим методом, независимо от того, какой из них использует форма).