我需要一些帮助。我在这里有一个类别选择的脚本。当我在网址www.domain.com/zone.php?cat=Apple上使用时,它可以在Apple类别中显示项目
但是我想在网址中有两个或更多类别,例如www.domain.com/zone.php?cat=Apple&cat=Orange&cat=Pear,以便显示Apple,Orange和Pear中的所有项目。我如何从下面这样做。
if (isset($_GET['cat']) && strtolower($_GET['cat'])!=='all'){
$cat = DB::LimitQuery('category', array(
'condition' =>'name="'.$_GET['cat'].'"',
));
$condition = array(
"(city_id = '0' OR find_in_set({$city['id']},city_id))",
'product' => $cat[0]['id'],
"begin_time < {$daytime}",
);
} else {
$condition = array(
"(city_id = '0' OR find_in_set({$city['id']},city_id))",
"begin_time < {$daytime}",
);
}
答案 0 :(得分:0)
如果你想要更多的类别,你必须设置更多的GET
参数才能抓住它,你做错了
$_GET['cat1']
$_GET['cat2']
$_GET['cat3']
但是如果您想在单个参数中使用很多类别,请使用任何正确编码在网址中的字符来划分类别,如,
,这样就可以这样了
www.domain.com/zone.php?cat=Apple&,Orange,Pear
在PHP端和explode()
$cats = explode($_GET['cat'],',');
答案 1 :(得分:0)
你需要这样做:
www.domain.com/zone.php?cat[]=Apple&cat[]=Orange&cat[]=Pear
它将在$_GET['cat']
中创建数组。
在php make:
$condition = array(
"(city_id = '0' OR find_in_set({$city['id']},city_id))",
'product IN ( '.implode(','.$_POST['cat'].')',
"begin_time < {$daytime}",
);
但是 您需要检查这些值以避免注入。
答案 2 :(得分:0)
的index.php
<?php if(isset($_GET['arr']))
{
$id = $_GET['arr'];
var_dump($id);
}
?>
<?php $array =array('apple','orange','banana');
$array = http_build_query(array('arr'=>$array));
var_dump($array);
?>
<a href="index.php?<?php echo $array;?>">click</a>
我希望这会对你有帮助!