Как передать несколько значений переменной через URL-адрес
У меня есть приложение, которое я создаю, и я застрял в определенной точке.
Я пытаюсь передать переменную, которая имеет несколько значений. Таким образом, мой URL-адрес будет выглядеть так:
localhost/report.php?variable=value1, value2, value3
Проблема в том, что я не уверен, как я могу это сделать. Переменные должны использоваться для извлечения данных из базы данных. Я использую PHP и не использую Javascript.
Любая помощь была бы замечательной!
РЕДАКТИРОВАТЬ:
Вот 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>
Итак пользователь может выбрать Книги и компакт-диск, и мне нужно будет передать эти два значения в переменной "типы".
6 answers
Как отмечено в 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";
Использовать &
localhost/report.php?variable=value1&val2=value2&val3=value3
Это то, что тебе нужно?
В PHP есть простой способ сделать это, вызвав http_build_query()
и передайте свои значения в виде индексированного массива. Вы бы сделали что-то вроде:
$value_array = array('types' => array('book', 'cd'));
$query = http_build_query($value_array);
Затем сгенерируйте URL-адрес с помощью $query
.
Попробуйте localhost/report.php?variable[]=value1&variable[]=value2
даст вам массив в php
Я думаю, что у вас правильный URL-адрес
localhost/report.php?variable=value1,value2,value3
Затем используйте PHP, чтобы получить все значения на report.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']);
Функция сериализации предоставляет вам сохраняемую (строковую) версию типа массива и может быть восстановлена с помощью функции несериализации.