零总是在php isset中返回null

时间:2013-11-12 10:04:21

标签: php codeigniter isset

我是php的新手...我试图通过使用dropdownlist来过滤我的数据。我在视图中的代码就像

   <?php 
    if(isset($value))
    {
       if($value==1)
      {
      echo"<option value='1' selected>option1</option>
           <option value='0' >option2</option>";    
      } 

      if($value==0)
      {
      echo"<option value='1' >option1</option>
           <option value='0' selected >option2</option>";   
      }    
    }           
    else    
    {
      echo"<option value='1'>option1</option>
           <option value='0'>option2</option>"; 
           $value="";
    }              

  ?>

但是如果选择option1它正常工作..但是当点击option2时它会过滤正确的数据,但它只选择状态..选择的值是状态,即与空值相同...

2 个答案:

答案 0 :(得分:0)

只需尝试使用此

替换您的代码
<select name="status" id="status">
<option value=""><< Select Option >></option>
<option value="1" <?=($status=="1")?"selected":""?>>Active</option>
<option value="0" <?=($status=="0")?"selected":""?>>Inactive</option>           
</select>

它的小型和三元式算子在其他情况下是快速的。

答案 1 :(得分:0)

在解决您可能需要更多解释的过滤问题之前 我建议重构代码以避免不必要的条件和代码重复

这是一种方法:

<?php $values   = array('Inactive', 'Active') ?>
<?php $selected = (!empty($status)) ? 'selected' : ''  ?>

<?php foreach($values as $value => $label): ?>
    <option value='<?php echo $value ?>' <?php echo $selected ?> ><?php echo $label ?></option>
<?php endforeach ?>