Php 如何在yii下拉列表中显示所选选项?

Php 如何在yii下拉列表中显示所选选项?,php,yii,Php,Yii,我创建了一个下拉列表来选择要搜索的类别。例如,当我搜索产品时,我搜索男士鞋,当查看页面加载时,项目重置为默认值 我希望类别保持我选择的类别 <form action="<?php echo Yii::app()->baseUrl; ?>/search" method="GET" class="form-inline form-section-2 row fadeInDown animated"> <div class="col-sm-5 form-

我创建了一个下拉列表来选择要搜索的类别。例如,当我搜索产品时,我搜索男士鞋,当查看页面加载时,项目重置为默认值

我希望类别保持我选择的类别

  <form action="<?php echo Yii::app()->baseUrl; ?>/search" method="GET"  class="form-inline form-section-2 row  fadeInDown animated">
  <div class="col-sm-5 form-group">
  <input type="text"  name="loc"  class="form-control" id="loc" value="<?php  echo $locationdet ; ?>" placeholder="Enter Your Keyword">
  </div>
  <div class="col-sm-4 form-group" >
     <select  name="cat" class="form-control selectpicker">
        <option>Select Category</option>
        <option value = '0'>Men</option>
        <option value = '1'>Women</option>          
    </select> 
  </div>
  <div class="col-sm-3 form-group">
  <button type="submit" class="btn btn-default btn-new">Search Products</button>    
  </div>
</form>
试试这个:

<option value = '0' <?php if(isset($_GET['cat']) && $_GET['cat'] == '0') echo "selected" ?>>Men</option>
<option value = '1' <?php if(isset($_GET['cat']) && $_GET['cat'] == '1') echo "selected" ?>>Women</option>
>女性

您必须通过控制器将所选选项传递回视图

在控制器中,您将需要以下内容:

$this->render('viewName', array('name' => 'valueOfTheList'))
然后在视图中可以使用

<option value = '0' <?php if($name == '0') echo "selected" ?>>Men</option>
<option value = '1' <?php if($name == '1') echo "selected" ?>>Women</option>
>女性
不过。因为你用的是Yii。我建议你去看看。然后你可以做类似的事情

<?php echo CHtml::dropDownList('name', $select, 
          array('M' => 'Male', 'F' => 'Female'));
使用

要实现yii风格


干杯

我知道实现此功能的方法。

通过将用户输入值设置为“模型属性”,可以保持表单状态。为此,您可以使用
CFormModel
来实现,就像YII的默认登录页面一样。下面是一个示例

  • 为搜索创建一个表单模型(SearchForm.php),并将其放在
    models
    文件夹中

    class SearchForm extends CFormModel
    {
            public $search_key;
            public $search_cat;
    
            public function rules()
            {
                    return array(           
                            array('search_key,search_cat', 'required'),
                    );
            }
    }
    
  • 假设我使用的是
    SiteController
    。我想在我的索引页中显示此搜索表单。当我提交表单时,它将提交到
    search
    action

     class SiteController extends Controller
     {
        public function actionIndex()
        {
            $searchModel=new SearchForm();
            $searchModel->search_key;
            $searchModel->search_cat;
            $this->render('index',array('searchModel'=>$searchModel));
        }
    
        public function actionSearch()
        {
              $searchModel=new SearchForm();
              if($_POST['SearchForm'])
              {
                 $searchModel->attributes=$_POST['SearchForm'];
              }
              $this->render('search',array('searchModel'=>$searchModel));
        }
    
    }

  • $searchModel->attributes=$\u POST['SearchForm']也就是说,我正在将用户输入重置为模型。因此,在您的视图中,表单将显示用户输入值

  • 在视图中调用此窗体

           <?php
        $form = $this->beginWidget('CActiveForm', array(
            'id' => 'search-form',
            'enableClientValidation' => true,
            'action'=>array('default/search'), //Submiting my form to Search action
           ));
        ?>
    
                <?php echo $form->textField($searchModel, 'search_key'); ?>    
                <?php
                $htmlOptions = array('size' => '1', 'prompt' => 'Select'); 
                $list = array('0' => 'Men', '1' => 'Women'); // You can load your Categories from the Database table/Model.
                echo $form->dropDownList($searchModel, 'search_cat', $list, $htmlOptions);
                ?>
                <?php echo CHtml::submitButton('Search'); ?>
        <?php $this->endWidget(); ?>
    
    
    

  • 希望,这将帮助您更好地练习。

    您是否正在尝试新的
    method=“GET”
    此处
    不..这是我的错误..谢谢您简单的方法
           <?php
        $form = $this->beginWidget('CActiveForm', array(
            'id' => 'search-form',
            'enableClientValidation' => true,
            'action'=>array('default/search'), //Submiting my form to Search action
           ));
        ?>
    
                <?php echo $form->textField($searchModel, 'search_key'); ?>    
                <?php
                $htmlOptions = array('size' => '1', 'prompt' => 'Select'); 
                $list = array('0' => 'Men', '1' => 'Women'); // You can load your Categories from the Database table/Model.
                echo $form->dropDownList($searchModel, 'search_cat', $list, $htmlOptions);
                ?>
                <?php echo CHtml::submitButton('Search'); ?>
        <?php $this->endWidget(); ?>