Как передать несколько значений переменной через 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";

использовать &

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, чтобы получить все значения в отчете.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.