How to use $_GET to get multiple parameters using the same name in PHP
I'm using checkboxes to search a mysql database I have created. As the checkboxes all use the same name, when I use $_GET, it only gets the last value in the URL.
For example: http://www.website.com/search.php?features=Textures&features=Items&style=Realistic&submit=search
would only return Items, and woul开发者_如何学JAVAd override Textures.
Is there a way to store both the values, and then to use these values to search my database?
PHP is a little odd here. Using its standard form data parser, you must end the name of the controls with []
in order to access more than one of them.
<input type="checkbox" name="foo[]" value="bar">
<input type="checkbox" name="foo[]" value="bar">
<input type="checkbox" name="foo[]" value="bar">
Will be available as an array in:
$_GET['foo'][]
If you don't want to rename the fields, then you will need to get access to the raw data ($_SERVER['REQUEST_URI']
) and parse it yourself (not something I'd recommend).
I have never tried it with $_GET, but if you use $_POST you can do something like this:
<input type="checkbox" name="car[]" value="honda" /> Honda
<input type="checkbox" name="car[]" value="ford" /> Ford
<input type="checkbox" name="car[]" value="toyota" /> Toyota
// note the [] in the name
so that $car = $_POST['car'] is an array
You can try it with $_GET as well and see.
Name your checkbox elements "features[]" in html. That way they will be passed as an array.
you need to make the NAME for that variable a HTML array'd variable so on the form, it would be
<input name='features[]'/>
精彩评论