如何通过URL传递变量的多个值

时间:2012-08-12 19:31:05

标签: php url urlvariables

我正在构建一个应用程序,而且我已经陷入某种困境。

我正在尝试传递一个具有多个值的变量。所以我的网址将如下所示:

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>

因此用户可以选择Books和CD,我需要在“types”变量中传递这两个值。

6 个答案:

答案 0 :(得分:10)

使用&

localhost/report.php?variable=value1&val2=value2&val3=value3

这就是你追求的目标吗?

答案 1 :(得分:5)

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";

答案 2 :(得分:4)

有一种简单的方法可以通过调用http_build_query()在PHP中执行此操作,并将您的值作为索引数组传递。你可以这样做:

$value_array = array('types' => array('book', 'cd'));
$query = http_build_query($value_array);

然后使用$query生成网址。

答案 3 :(得分:2)

尝试localhost/report.php?variable[]=value1&variable[]=value2将在php中为您提供一个数组

答案 4 :(得分:2)

我认为您的网址正确无误

localhost/report.php?variable=value1,value2,value3

然后使用PHP获取report.php页面上的所有值

$variable = explode(",", $_GET["variable"]);

// Output
$variable[0] = "value1";
$variable[1] = "value2";
$variable[2] = "value3";

答案 5 :(得分:0)

您可以使用serialize之类的:

echo '<a href="index.php?var='.serialize($array).'"> Link </a>';

并使用unserialize获取数据,如:

$array= unserialize($_GET['var']);

序列化函数为您提供数组类型的可存储(字符串)版本,并且可以通过反序列化函数进行恢复。