开发者

How to use $_GET to get multiple parameters using the same name in PHP

开发者 https://www.devze.com 2023-02-10 02:59 出处:网络
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.

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[]'/>
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号