Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过URL传递变量的多个值_Php_Url_Urlvariables - Fatal编程技术网

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

Php 如何通过URL传递变量的多个值,php,url,urlvariables,Php,Url,Urlvariables,我有一个我正在构建的应用程序,我被困在某个点上 我试图传递一个具有多个值的变量。因此,我的URL将如下所示: localhost/report.php?variable=value1, value2, value3 问题是我不确定我怎么能做到这一点。这些变量用于从数据库检索数据。我使用的是PHP,没有Javascript 任何帮助都会很好 编辑: 以下是我在页面中选择变量的HTML: <select name="types" size="19" multiple> <

我有一个我正在构建的应用程序,我被困在某个点上

我试图传递一个具有多个值的变量。因此,我的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>

所有类型
书
光盘
因此用户可以选择书籍和CD,我需要在“types”变量中传递这两个值。

使用
&

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

这就是你想要的吗?

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

在php中,有一种简单的方法可以通过调用并将你的值作为索引数组传递。您可以执行以下操作:

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

然后使用
$query

生成url。我认为您的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";
您可以像这样使用:

serialize函数为您提供数组类型的可存储(字符串)版本,并且可以通过unserialize函数还原。

如中所述,您可以使用此方法


如果您希望PHP将$_GET['select2']视为一个选项数组,只需在select元素的名称中添加方括号,如下所示:
序列化数组如何?是否使用from发送此内容?如果是这样的话,php应该在$_POST['types']?@wgcrouch中以数组的形式获取它,我正在使用一个表单发送它。但是当我发送它时,URL会像
report.php?variable=value1&variable=value2
可能重复一样结束。您需要将select元素的名称更改为types[]这是多个变量,而不是一个具有多个值的变量。我真正需要的是将所有值添加到该变量中。因此,在PHP代码中,我可以只使用
$variable=$\u GET['variable']
,这样我就可以在查询中使用$variable。如果两个页面位于同一个域中,您可以使用
会话
变量<代码>会话[“myStringName”]=someObject
然后简单地通过转换到您需要的内容来读回它。对不起,不过我的PHP不太好。这个主意很有趣。如果我将一个
index.php?var='.serialize($array)。
链接作为书签或复制,我是否能够稍后重新加载该链接,或者序列化的数据是否在会话中丢失?
echo '<a href="index.php?var='.serialize($array).'"> Link </a>';
$array= unserialize($_GET['var']);
<?php
header("Content-Type: text/plain");

foreach ($_GET['select2'] as $selectedOption)
  echo $selectedOption."\n";