Как передать несколько значений переменной через URL-адрес
у меня есть приложение, которое я строю, и я застрял в определенный момент.
Я пытаюсь передать переменную, которая имеет несколько значений. Поэтому мой URL будет выглядеть так:
localhost/report.php?variable=value1, value2, value3
проблема в том, что я не уверен, как я могу сделать это. Переменные должны использоваться для извлечения данных из базы данных. Я использую PHP и не Javascript.
любая помощь будет здорово!
EDIT:
Вот HTML, который у меня есть на моей странице, где переменные выбираются:
<select name="types" size="19" multiple>
<option value="all" selected>All Types</option>
<option value="book" selected>Books</option>
<option value="cd" selected>CD</option>
</select>
таким образом, пользователь может выбрать книги и CD, и мне нужно будет передать эти два значения в переменной "типы".
6 ответов
Как отмечено в https://stackoverflow.com/a/2407401/1265817, Вы можете использовать этот метод.
Если вы хотите, чтобы PHP рассматривал $_GET ['select2'] как массив опций, просто добавьте квадратные скобки к имени элемента select следующим образом:<select name="select2[]" multiple …
тогда вы можете получить доступ к массиву в вашем PHP-скрипте
<?php
header("Content-Type: text/plain");
foreach ($_GET['select2'] as $selectedOption)
echo $selectedOption."\n";
существует простой способ сделать это в PHP, вызвав http_build_query()
и передайте свои значения как индексированный массив. Вы бы сделали что-то вроде:
$value_array = array('types' => array('book', 'cd'));
$query = http_build_query($value_array);
затем создайте url-адрес с помощью $query
.
Я думаю, что у вас есть правильный URL-адрес
localhost/report.php?variable=value1,value2,value3
затем использовать PHP, чтобы получить все значения в отчете.php страница
$variable = explode(",", $_GET["variable"]);
// Output
$variable[0] = "value1";
$variable[1] = "value2";
$variable[2] = "value3";
можно использовать сериализовать как:
echo '<a href="index.php?var='.serialize($array).'"> Link </a>';
и получить данные с помощью восстановить как:
$array= unserialize($_GET['var']);
сериализовать функцию, дающую вам хранимую (строковую) версию типа массива, и может быть восстановлена функцией unserialize.