1

我是 php 的新手 ..我正在尝试使用下拉列表从 db 中过滤我的数据 ..我在视图形式中的代码就像

   <?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="";
    }              

  ?>

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

4

2 回答 2

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>

如果其他条件,它的小三元运算符很快。

于 2013-11-12T10:25:08.780 回答
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 ?>
于 2013-11-12T10:27:13.337 回答