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

时间:2016-05-20 09:59:56

标签: php mysql codeigniter

我有一个基于不同颜色标志的搜索过滤器。 如果我将根据颜色进行搜索,它会显示结果但是当我选择白色标记时,它会在我的数据库表中显示整个数据。但如果我第一次选择除白色之外的任何其他颜色,它将显示结果。如果我第二次选择白色标记,那么它会给出正确的结果。可能是什么原因。我需要帮助

//过滤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')
);

视图

<?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 个答案:

答案 0 :(得分:0)

它因为与白色标志的价值冲突......  在视图中我更改了代码

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

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