web-dev-qa-db-ja.com

変数の複数の値を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>

したがって、ユーザーはBooksとCDを選択でき、これら2つの値を「types」変数に渡す必要があります。

7
mickburkejnr

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

使用する &

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

それはあなたが求めているものですか?

11
jp2code

PHPを呼び出して http_build_query() を呼び出し、値をインデックス付き配列として渡す簡単な方法があります。次のようにします。

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

次に、$queryを使用してURLを生成します。

4
Chris

localhost/report.php?variable[]=value1&variable[]=value2は、phpで配列を提供します

2
WayneC

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

次のように serialize を使用できます。

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

そして、 nserialize を使用してデータを取得します:

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

配列型の保存可能な(文字列)バージョンを提供するシリアル化関数。unserialize関数で復元できます。

0
MAMProgr