我有一个正在构建的应用程序,但我卡在某个点上。
我正在尝试传递一个具有多个值的变量。所以我的网址将如下所示:
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>
因此,用户可以选择书籍和CD,我需要在"类型"变量中传递这两个值。
使用 &
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);
然后使用 $query
生成 url
如 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,value2,value3
然后使用 PHP 获取报表.php页上的所有值
$variable = explode(",", $_GET["variable"]);
// Output
$variable[0] = "value1";
$variable[1] = "value2";
$variable[2] = "value3";
试试localhost/report.php?variable[]=value1&variable[]=value2
会给你一个 php 数组
你可以像这样使用序列化:
echo '<a href="index.php?var='.serialize($array).'"> Link </a>';
并使用反序列化获取数据,如下所示:
$array= unserialize($_GET['var']);
序列化函数为您提供数组类型的可存储(字符串)版本,并且可以通过反序列化函数恢复。