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 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面