I’ve an application that I’m building, and I’m stuck at a certain point.
I’m trying to pass a variable that has multiple values. So my URL will look like:
localhost/report.php?variable=value1, value2, value3
Any help would be great!
Here is the HTML I have in my page where the variables are selected:
<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>
So a user could select Books and CD, and I would need to pass these two values in the “types” variable.
As noted at https://stackoverflow.com/a/2407401/1265817, you can use this method.
If you want PHP to treat $_GET[‘select2’] as an array of options just add square brackets to the name of the select element like this:
<select name="select2" multiple …
Then you can acces the array in your PHP script
<?php header("Content-Type: text/plain"); foreach ($_GET['select2'] as $selectedOption) echo $selectedOption."\n";
Is that what you are after?
There is a simple way to do this in PHP by calling
http_build_query() and pass your values as an indexed array. You would do something like:
$value_array = array('types' => array('book', 'cd')); $query = http_build_query($value_array);
Then generate the url using
localhost/report.php?variable=value1&variable=value2 will give you an array in php
I think you have your URL correct
Then use PHP to get all of the values on the report.php page
$variable = explode(",", $_GET["variable"]); // Output $variable = "value1"; $variable = "value2"; $variable = "value3";
You can use serialize like:
echo '<a href="index.php?var='.serialize($array).'"> Link </a>';
and get data using unserialize like:
serialize function giving you storable (string) version of array type, and can be restored by unserialize function.