这可能是一个简单的解决方案,但我画了一个空白。我正在尝试基于$,$$,$$$,$$$$和$$$$$等值创建PHP过滤器。我希望能够选择超过价格并让它过滤。我的SQL表看起来像:
price_id price_name
1 $
2 $$
3 $$$
4 $$$$
5 $$$$$
我的网址看起来像www.example.com/search.php?address=567&price_id=1&price_id=2。当我输入下面的GET时,我能够得到最后的价格price_id = 2但不是price_id = 1。我能从URL获取两个price_ids吗?
$price_id = $_GET['price_id'];
echo ''.$price_id.'';
非常感谢!
答案 0 :(得分:2)
PHP没有自动为您执行此操作,因为所有变量都具有相同的名称:price_id=1
被price_id=2
覆盖。有两种方法:
如果您不控制网址,可以使用explode('&', $_SERVER['QUERY_STRING'])
手动执行此操作。
或者,如果您控制了正在生成的网址,只需在方括号上添加方括号:price_id[]=1&price_id[]=2
答案 1 :(得分:0)
www.example.com/search.php?address=567&price_id=1&price_id=2
将此更改为
www.example.com/search.php?address=567&price_id1=1&price_id2=2
然后
做
$price_id1 = $_GET['price_id1'];
$price_id2 = $_GET['price_id2'];
echo ''.$price_id1.''.$price_id2;
尝试告诉
答案 2 :(得分:0)
制作price_id和数组[]
:
search.php?address=567&price_id[]=1&price_id[]=2
然后你有$_GET['price_id'][0]
和$_GET['price_id'][1]
。
答案 3 :(得分:0)
问题是你不能两次传递相同的参数。这就像声明$ value = 1; $ value = 2然后尝试从值读取1和2,如果这是有道理的。您可以通过在price_id中的值之间放置一个特殊字符来解决此问题。像price_id = 1 * 2或者你可以简单地从price_id开始,然后对于每个新的id,你可以将它增加为price_id1,price_id2等。我喜欢第一个因为你可以爆炸它而不必检查其他的是设置,但这都是首选。
答案 4 :(得分:0)
你得到第二个价格,因为两者都有相同的ID,尝试使用post 即
<form method="post" action ="act.php">
<input name=price[1]>
<input name=price[2]>
</form>
And get the values using post
//act.php
$prices = $_POST['price'];