douluokuang7184 2016-05-20 09:59
浏览 21
已采纳

搜索过滤器在首次尝试时无效

I have a search filter based on flags of different colors. If I will search based on color it is showing result but when I will select white color flag it is showing entire data in my database table. But If I choose any other color apart from white color for the first time it will show result. And if I choose white color flag second time,then it gives the correct result. What might be the reason. I need help

//filter on flag_color

if($this->input->get('flg')){
        $arr_flag   =   explode('-', $this->input->get('flg'));
        $str_flag   =   implode(',',$arr_flag);
        if(6    ==  $str_flag){
            $str_flag   =   0;
        }
        $str_condition  .=  'AND t.sender_flag_color_id IN('.$str_flag.')';
} 

array(
    '0'=>array(
                'color'=>'White',
                'path'=>'whiteflag.png'),
    '1'=> array(
                'color'=>'Blue',
                'path'=>'blueflag.png'),
    '2'=>array(
                'color'=>'Green',
                'path'=>'greenflag.png'),
    '3'=>array(
                'color'=>'Yellow',
                'path'=>'yellowflag.png'),
    '4'=>array(
                'color'=>'Red',
                'path'=>'redflag.png') ,
    '5'=>array(
                'color'=>'Orange',
                'path'=>'orangeflag.png')
);

view

<?php
    $arr_params     =   $this->uri->uri_to_assoc();
    $arr_flag       =   array();
    if(isset($arr_params['flg']))
    { ?>



        <input type="hidden" id="flag_in_url" name="flag_in_url" value="yes" />
    <?php
        }
    ?>
    <!-- id="webmenu1" -->
<select class="flag_color" onchange="urgency_select('flag_color')" name="header_flag" id="webmenuflag1">
<?php
    $arr_params     =   $this->uri->uri_to_assoc();
    $arr_flag       =   array();
    $int_flag_url   =   '';
    if(isset($arr_params['flg']))
    {
        $int_flag_url   =   $arr_params['flg'];
    }

    if(isset($arr_flag_color))
    {
        foreach($arr_flag_color as $key=>$flag_color)
        { 
            if($int_flag_url    ==  $key)
            {
                $flag_selected  =   'selected';
            }
            else
            {
                $flag_selected  =   '';
            }
            ?>
            <option <?php echo $flag_selected;?> value="<?php echo $key;?>" data-image="<?php echo base_url();?>images/<?php echo $flag_color['path'];?>"></option>
            <?php 
        }
    }
    ?>

js: urgency_select

var flag_color_id   =   '';
        if(select_option    ==  'flag_color' || $( "#flag_in_url" ).val()   ==  'yes')
        {
            if($( ".flag_color" ).val() != undefined)
            {
                var flag_color_id   =   $( ".flag_color" ).val();
                if(flag_color_id    ==  0)
                    flag_color_id   =   6;
                search_url  +=  'flg/'+flag_color_id+'/';
            }
        }
  • 写回答

1条回答 默认 最新

  • duanjiao5082 2016-05-23 06:34
    关注

    Its because conflict with the value of white color flag... In the view I changed the code

    if($int_flag_url == $key)
     { 
        $flag_selected = 'selected'; 
     } 
    

    to

    if($int_flag_url == 0 || $int_flag_url == $key) 
    { 
        $flag_selected = 'selected'; 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 VUE项目怎么运行,系统打不开