0

我需要一些帮助。我这里有一个用于类别选择的脚本。当我在网址 www.domain.com/zone.php?cat=Apple 上使用时,它可以工作并显示 Apple 类别中的项目

但是,我想在网址中有 2 个或更多类别,例如 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}",
            );      
}
4

3 回答 3

0

好吧,如果您想拥有更多类别,那么您做错了,您必须设置更多GET参数才能捕获它

$_GET['cat1']
$_GET['cat2']
$_GET['cat3']

但是如果您想要在单个参数中包含很多类别,请使用将在 url 中正确编码的任何字符分隔类别,,就像这样

www.domain.com/zone.php?cat=Apple&,Orange,Pear

explode()在 PHP 端

$cats = explode($_GET['cat'],',');
于 2013-04-11T11:28:54.223 回答
0

你需要做:

www.domain.com/zone.php?cat[]=Apple&cat[]=Orange&cat[]=Pear

它将在. _$_GET['cat']

并在 php 中制作:

$condition = array( 
            "(city_id = '0' OR find_in_set({$city['id']},city_id))",
            'product IN ( '.implode(','.$_POST['cat'].')',
            "begin_time <  {$daytime}",
            );

但是您需要检查该值以避免注射。

于 2013-04-11T11:32:17.543 回答
0

索引.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>

我希望这能帮到您!

于 2013-04-11T12:21:57.493 回答