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(); ?>